Загрузить файл SQL в функцию postgresql - PullRequest
0 голосов
/ 10 апреля 2020

Я хотел бы загрузить локальный файл и выполнить его в функции postgresql, но я не знаю, как ..

Я получил таблицу, в которой только 1 столбец содержит абсолютный путь к файлу, например ↓

tmp_import_files.filename
-----------------
/tmp/test_file.sql
/tmp/test_file1.sql
/tmp/test_file2.sql
-----------------

и хочу сделать что-то вроде этого ..

FOR rec IN SELECT filename FROM tmp_import_files ORDER BY filename ASC LOOP
    RAISE NOTICE rec.filename
    FOR sql IN LOAD rec.filename LOOP -- LOAD is not right?
        EXECUTE sql;
    END LOOP;
END LOOP;

1 Ответ

0 голосов
/ 10 апреля 2020

LOAD позволяет загрузить код совместно используемой библиотеки в исполняемый файл PostgreSQL: он не позволяет загружать SQL файлы.

Для загрузки и выполнения SQL файлов вы можете попробовать использовать psql \ i командную или системную функцию pg_read_file (см. https://www.postgresql.org/docs/12/functions-admin.html#FUNCTIONS -ADMIN-GENFILE ) с большим количеством кода.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...