Использование COPY FROM STDIN в сохраненной функции - PullRequest
0 голосов
/ 19 декабря 2018

Я пытаюсь скопировать данные в таблицу из хранимой функции PostgreSQL.Данные строк и имя таблицы получены из Java-программы, и часть, которая вызывает ошибки, выглядит следующим образом:

_copyquery := FORMAT('COPY %s FROM STDIN (DELIMITER ''|'', FORMAT CSV); %s \.', _tablename, _stdin);
execute _copyquery;

Где _tablename - это имя таблицы, а _stdin - строки данных.отформатированный так:

12|34|139901177705664|1545226308991|991389|1545226308991|1545226308991|0|0|0|0|0|0|000|0.0.0.0|0.0.0.0|2328620776|0|0|0|0|0|0|0|0.0.0.0|0.0.0.0|0|0|0|0||0|0|0|-|0|0|0|0|0|195.46.227.124|33840|10.110.186.41|2123|2|0|3090304976|0.0.0.0|::|0|||0|0|0|0|0|0|0|0|2|5

Я получаю ошибку:

ОШИБКА: синтаксическая ошибка в или около "12"

где "12 "- это всегда первое поле, чаще всего 12 или 3. Есть идеи, почему это не работает?

1 Ответ

0 голосов
/ 01 марта 2019

Я обнаружил, что мой запрос в настоящее время невозможно выполнить, и остановился на использовании CopyManager для программной вставки данных.Имейте в виду, что с объемами данных, с которыми я работал, операторы вставки могут замедлить работу, и это хорошее решение.

...