Я создал функцию в базе данных, которая вставляет записи в таблицу. Эта функция возвращает VOID и принимает текстовый массив VARIADIC в качестве входного параметра. Когда я запускаю функцию из базы данных локально, она работает нормально, как и ожидалось.
Но когда я пытаюсь запустить из другой базы данных, используя стороннюю обертку данных, она не будет работать, выдает различные ошибки в зависимости от метода, который я использую.
Вот как я делаю один вид звонка:
SELECT dblink('pg_log',
'SELECT public.insert_log(''usage'', ''txn'', ''dimensions'', ''test'', null,
''pgwrapper'', ''temp_var'', null, null, null, ''Start'', null,
null, null, null);');
Тот выдает эту ошибку:
функция, возвращающая запись, вызванная в контексте, которая не может принять тип записи
Когда я заменяю Select dblink на PERFORM dblink, я получаю эту ошибку:
синтаксическая ошибка в или около "PERFORM"
И когда я пытаюсь, ВЫБЕРИТЕ dblink_exec:
Я получаю эту ошибку:
оператор, возвращающий результаты не разрешен
Опять же, функция работает так, как я ее вызвал, чтобы проверить ее, и она делает то, что должна.
Я проверил соединение с этим, и оно вернулось OK:
SELECT dblink_connect('pg_log');
У кого-нибудь есть идеи, почему это не получается, и предложения по исправлению?
Спасибо!