powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Подскажите по COPY FROM
11 сообщений из 11, страница 1 из 1
Подскажите по COPY FROM
    #35564963
Antoxa1982
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно ли организовать условие добавления???
В общем проблема следующего плана, есть файл периодически в нем встречаются строки которые не надо добавлять, они не соответсвуют основной структуре файла(типа пояснения что ли:-) ), начинаются на '#', как мне объяснить PSQL что эти строки надо пропускать?
Удалять вручную нереально, файлы весом по 300-700 мб.
...
Рейтинг: 0 / 0
Подскажите по COPY FROM
    #35565030
Фотография Ёш
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
пропустите входные данные через pipe с grep -v ^#


--
„Истина — это вовсе не то, что можно убедительно доказать, это то, что
делает всё проще и понятнее“ — Антуан де Сент-Экзюпери
...
Рейтинг: 0 / 0
Подскажите по COPY FROM
    #35565071
Antoxa1982
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А можно подробнее, я признаться не понял о чем речь :-(
...
Рейтинг: 0 / 0
Подскажите по COPY FROM
    #35565185
Фотография Ёш
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
$ grep -v ^# my_input_file | psql -c '\copy my_tbl from stdin'


--
„Истина — это вовсе не то, что можно убедительно доказать, это то, что
делает всё проще и понятнее“ — Антуан де Сент-Экзюпери
...
Рейтинг: 0 / 0
Подскажите по COPY FROM
    #35565251
Antoxa1982
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я так понимаю что в самом запросе условие поставить нельзя?
...
Рейтинг: 0 / 0
Подскажите по COPY FROM
    #35565334
girla
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Unix-way: зачем перегружать функционал тем, с чем уже отлично справляется другая программа.
...
Рейтинг: 0 / 0
Подскажите по COPY FROM
    #35565975
Sishnikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Попробуй это ловить тригерром...
...
Рейтинг: 0 / 0
Подскажите по COPY FROM
    #35566070
Фотография Степан H.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
триггером пользоваться не еффективно..

Возможно оффтоп, но если я не ошибаюсь,
периодчески возникают проблемы с загрузкой трафика из ng_ipacct
#Archimetric overflow ...
???
если да, то переходите на ng_flow, там такого нет ))
...
Рейтинг: 0 / 0
Подскажите по COPY FROM
    #35566859
Antoxa1982
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
До триггера дело даже не доходит, вылетает сообщение, что мол количество столбцов не соответсвует, строки которые начинаются на # что то вроде пояснения в одну строку, без разделителей :-(
И что такое ng_flow? Признаться мне это не о чем не говорит :-(
а по поводу grep, нужно же учитывать, что сервер может быть на Win развернут!
...
Рейтинг: 0 / 0
Подскажите по COPY FROM
    #35567486
Фотография Степан H.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Antoxa1982До триггера дело даже не доходит ...

.... не доходит, потому что данные заливаются в готовую структуру,
и ваш символ # явно не вяжется с типом поля который идет первым.
попробуйте в таблице в которую вы заливаете данные добавить поле varchar и заливать туда явно

Код: plaintext
 COPY rec_temp_tbl (name_rec) FROM '/usr/local/etc/myfile.txt';

а потом триггером BEFORE INSERT парсить name_rec и раскидывать данные по другим полям

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

Однако в Вашем случае я б прислушался к совету Ёш и сделал
Код: plaintext
grep -v ^#

ИМХО.
...
Рейтинг: 0 / 0
Подскажите по COPY FROM
    #35567956
Antoxa1982
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
О чем вы говорите, полей 25 штук, разделены табуляцией
а стоки с '#' просто пара слов описания. Что то типа:

#gfkjfjgdjfgdlfk
#kfsfgdmkg gkmfdgk fdmgkdf
#vgvfldv glfdgdfl
221 -> 567667 -> 6767 -> 678 -> 67678 ...
221 -> 567667 -> 6767 -> 678 -> 67678 ...
221 -> 567667 -> 6767 -> 678 -> 67678 ...
....
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Подскажите по COPY FROM
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]