如何使用 plpgsql 将服务器上的文件移动到另一个目录?

How to move a file on the server to another directory using plpgsql?

我想使用 plpgsql 将服务器上的文件从一个目录移动到另一个目录。

我从服务器的 XML 文件中取出一些数据,将其写入表(这部分工作正常),然后我想将处理后的文件移动到另一个位置。

在我使用的oracle数据库中:

utl_file.frename(from_dir, file_name, to_dir, file_name);

如果 plpgsql 中有一些类似的功能可以将文件从一个位置移动到另一个位置,您有什么想法吗?

此外,当前使用需要超级用户权限的 lo_import 和 lo_export。没有超级用户还有其他方法吗?

要将文件从一个位置复制到另一个位置:

create or replace function copy_file(from_path text, to_path text) 
    RETURNS void AS $$
declare
  l_oid oid;
begin
  select lo_import(from_path) into l_oid;
  perform lo_export(l_oid, to_path);
  perform lo_unlink(l_oid);
end;$$
LANGUAGE 'plpgsql';