импорт CSV-файлов на числовые типы Postgres - PullRequest
2 голосов
/ 11 июня 2011

Мне нужно импортировать файл в базу данных Postgres и получить эту ошибку:

неверный синтаксис ввода для целого числа в фабрике, "1";
Состояние SQL: 22P02

Моя команда:

copy trazabilidade(fabrica, --integer
                    idChapa, --integer
                    descricao, --varchar
                    espessura, --double precision
                    comprimento, --double precision
                    largura, --double precision
                    peso) from 'C:/temp_nexo/traz.csv' delimiter ';';

Как я могу импортировать данные из файлов CSV с номерами?

Ответы [ 2 ]

1 голос
/ 13 июня 2011

Согласно ответу Дениса о команде COPY, вы не можете добавлять пользовательские приведения к командам копирования postgres.Если pgloader является избыточным, вы можете загрузить свои данные во временную таблицу, а затем оттуда исследовать, а затем привести / обрезать / манипулировать любыми данными, которые, по вашему мнению, должны быть действительными.

1 голос
/ 11 июня 2011

http://wiki.postgresql.org/wiki/COPY

Не может расширять принуждения Pg

Механизм загрузки данных основан на том, что данные являются формальным представлением типа данных Pg или принудительным (например,, литой) Стр.Тем не менее, в настоящее время нет способа добавить пользовательские приведения для типов Pg.Например, вы не можете заставить '31, 337 ':: int работать, переопределив приведение к Int.

. Также предлагается два варианта, а именно pgloader .

pgloader намного лучше загружает подверженные ошибкам данные в более гибком формате, чем встроенный COPY.Недостатками являются дополнительная сложность установки (Python + psycopg + конфигурация) и иногда значительная потеря скорости по сравнению со встроенным COPY.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...