有什么办法可以列出文件夹中的文件?
就像是:
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] 删除。
我来说两句