如何从Postgres内部列出文件夹中的文件?

基督教

有什么办法可以列出文件夹中的文件?

就像是:

select * from pg_ls_dir('/home/christian')

我尝试了,pg_ls_dir但是,根据文档

只能log_directory访问数据库集群目录和中的文件在群集目录中使用文件的相对路径,并使用与log_directory日志文件配置设置匹配的路径这些功能仅限于超级用户使用。

我需要从postgres目录外的文件夹中列出文件,类似于的方式COPY

丹尼尔·特鲁斯

通常对于SQL客户端没有用。

无论如何,您都需要实现它,这是脚本语言(如)的典型用例plperlu例:

CREATE FUNCTION nosecurity_ls(text) RETURNS setof text AS $$
  opendir(my $d, $_[0]) or die $!;
  while (my $f=readdir($d)) {
    return_next($f);
  }
  return undef; 
$$ language plperlu;

除限制外,该功能等同pg_ls_dir(text)系统管理功能中提到的功能


  => select * from nosecurity_ls('/var/lib/postgresql/9.1/main') as ls;
      ls       
----------------- 
 pg_subtrans 
 pg_serial 
 pg_notify 
 pg_clog 
 pg_multixact 
 .. 
 base 
 pg_twophase
 等...

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章