Postgresql: создать функцию, которая загружает данные из URL - PullRequest
0 голосов
/ 28 апреля 2018

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.

1 Ответ

0 голосов
/ 01 мая 2018

Я нашел решение:

CREATE FUNCTION load_file_content (text) RETURNS text AS '
#!/bin/bash
curl $1 2>/dev/null
' LANGUAGE plsh;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...