copy

Уважаемый форум
Выполняю
elmg=# copy wve(x,y,z,x_,y_,z_,dt,tm,sid) from '/export/public/pdata/wv.sql' delimiters ',';
ERROR: missing data for column "dt"
CONTEXT: COPY wve, line 84: "000575,002781,001895,40021,67330112,1"

Файл wv.sql иногда в некоторых строках не содержит все поля (последовательность формирует оборудование), поэтому команда copy, в этом случае, не проходит.

Существует ли возможность, не загружая в таблицу wve неполные строки файла wv.sql, исполнить команду copy и загрузить правильные строки файла wv.sql?

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

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

Нет. Команда COPY как раз и

Нет. Команда COPY как раз и хороша тем, что грубо говоря грузит все данные в одну транзакцию. Транзакция же всегда работает по принципу "всё или ничего".

Удалить неполные строки перед

copy tablename from 'filename' with null as '' - как-то так или
удалить неполные строки перед выполненеим команды COPY, или перенести полные строки в другай файл и делать COPY из него.

Все поля обязательны

Для команды COPY все поля обязательны.
Данные, значений которых не существует, все равно должны быть представлены в каком-либо виде.
Задается параметром WITH NULL AS 'значение' (по умолчанию \N). Можно здесь указать и пустую строку, но в данных должны присутствовать все запятые, и, по-моему, между запятыми обязательны пустые кавычки - проверьте.

Так что исходный текст по-любому придется перед загрузкой обрабатывать - в отсутствующие значения вставлять '\N', например.

спасибо понял

спасибо понял

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

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

Back to top

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