Как переместить файл на сервере в другой каталог, используя plpgsql? - PullRequest
0 голосов
/ 11 мая 2019

Я хотел бы переместить файл на сервере из одного каталога в другой, используя plpgsql.

Я беру некоторые данные из файла XML с сервера, записываю их в таблицы (эта часть работает) и после этого хочу переместить обработанный файл в другое место.

В базе данных оракула я использовал:

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

Есть идеи, если в plpgsql есть какая-то похожая функция для перемещения файла из одного места в другое?

Кроме того, в настоящее время используются lo_import и lo_export, которым требуются привилегии суперпользователя. Есть ли другой способ сделать это без суперпользователя?

1 Ответ

0 голосов
/ 11 мая 2019

Чтобы скопировать файл из одного места в другое:

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';
...