首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用postgresql plperl读取文件并打印

使用postgresql plperl读取文件并打印
EN

Stack Overflow用户
提问于 2016-12-18 02:25:01
回答 1查看 250关注 0票数 0

我想从OS文件系统中读取文件,并将其内容打印为表格。最可取的方式是使用plperl (因为不需要使用临时表,并且plperl在大多数postgres安装中默认是内置的)。但不幸的是,我不熟悉perl,并且我的函数无法工作。它是已读文件,但不打印任何内容。

你能检查一下函数体,然后说出错误在哪里吗?

代码语言:javascript
复制
    CREATE OR REPLACE FUNCTION public.file_read(text)
  RETURNS table(maj int, min int, dev text, reads bigint, rmerges bigint, rsects bigint, rspent bigint, writes bigint, wmerges bigint, wsects bigint, wspent bigint, inprog bigint, spent bigint, weighted bigint) AS
  $$
    open (datfile, $_[0]);
    while ($line = <$datfile>) {
      chomp $line;
      @line = split(/\s+/, $line);

      return_next({maj => $line[0], min => $line[1], dev => $line[2],
                   reads => $line[3], rmerges => $line[4], rsects => $line[5], rspent => $line[6],
                   writes => $line[7], wmerges => $line[8], wsects => $line[9], wspent => $line[10],
                   inprog => $line[11], spent => $line[12], weighted => $line[13]
                  });
    }
    close (datfile);
    return undef;
  $$ LANGUAGE plperlu;

# select * from file_read('/proc/diskstats');
 maj | min | dev | reads | rmerges | rsects | rspent | writes | wmerges | wsects | wspent | inprog | spent | weighted 
-----+-----+-----+-------+---------+--------+--------+--------+---------+--------+--------+--------+-------+----------
(0 rows)

谢谢!

EN

回答 1

Stack Overflow用户

发布于 2016-12-18 20:31:13

使用here描述的Pavel Stěhule的函数示例完全解决了问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41201725

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档