Postgres Версия: 10
Я хотел бы создать функцию, которая принимает url в качестве параметра, выполняет команду curl
и возвращает загруженные данные. Примерно так:
CREATE OR REPLACE FUNCTION get_content_from_url(url text) RETURNS text LANGUAGE plpgsql AS $$
BEGIN
RETURN PROGRAM 'curl ' + url;
END
$$;
Возможно ли это?
Как мне это сделать?
UPDATE:
Я также попробовал следующую функцию plsh:
CREATE FUNCTION load_file_content (text) RETURNS text AS '
#!/bin/bash
curl $1
' LANGUAGE plsh;
Но я получаю следующий результат ошибки при выполнении SELECT load_file_content('http://...');
:
ОШИБКА: load_file_content:% Всего% получено% Xferd Средняя скорость Время Время Время Текущий
Dload Upload Всего отработанных левых скоростей
0 0 0 0 0 0 0 0 -: -: - -: -: - -: -: - 0
100 20745 100 20745 0 0 669k 0 -: -: - -: -: - -: -: - 675k
Состояние SQL: XX000
И следующая функция plperl:
CREATE FUNCTION load_file_content (text) RETURNS text AS $$
my $result = "";
my $result .= qx(curl $1);
return $result;
$$ LANGUAGE plperl;
Что приводит к следующей ошибке при попытке создать функцию:
ОШИБКА: 'цитируемое выполнение (``, qx)' захвачено маской операции в строке 3.