COPY и многострочные тексты

Всем привет.
Начал перетягивать базу из одной СУБД в Postgres. Столкнулся с одной странной проблемой. Когда делаю COPY просто строки с разделителем \t - то все в порядке. А когда пытаюсь сделать вставку строки, в которой есть произвольной длины текст - получаю ошибку, так как СУБД видимо считает, что там, где еще продолжается текст должен быть следующий столбец.
Вопрос. Возможно ли сделать некий уникальный разделитель или как-то обойти это ограничение или может быть кто-то уже занимался массовой вставкой каких-либо логов по средствам COPY в Postgres, в том числе с многострочными произвольными полями типа text.

Опции просмотра комментариев

Выберите предпочитаемый вами способ показа комментариев и нажмите "Сохранить настройки" для активации изменений.

Почитайте

http://postgresql.ru.net/manual/sql-copy.html
Можно и свой разделитель задать и бинарный формат использовать и CSV

Свой разделитель = 1 байт.

Свой разделитель = 1 байт. Это известно. Каким образом кроме утилиты pg_dump можно сделать бинарный формат? Делать csv не выгодно, так как изначально информация в формате xml и вливается самописным java-приложением.
Поэтому я и спрашиваю об опыте вливки с помощью COPY многострочных текстов.

> Каким образом кроме утилиты

> Каким образом кроме утилиты pg_dump можно сделать бинарный формат?
Так почитайте, каким. Там же всё написано!

> изначально информация в формате xml и вливается самописным java-приложением.
Тогда зачем вообще c COPY заморачиваться? Загружайте через JDBC сразу в БД

> Поэтому я и спрашиваю об опыте вливки с помощью COPY многострочных текстов.
А чем многостраничный текст отличается от немногостраничного? Просто не используйте в данном тексте тот разделитель, который призван разделять поля в COPY. Как это выглядит? Забейте в БД вручную пару записей, выгрузите их через pg_dump в текстовом формате и посмотрите.

Опции просмотра комментариев

Выберите предпочитаемый вами способ показа комментариев и нажмите "Сохранить настройки" для активации изменений.

Back to top

(С) Виктор Вислобоков, 2008-2023