Vous n'êtes pas identifié(e).

#1 02/03/2018 00:07:06

parora0124
Membre

COPY Command with comma in string values - Postgresql 10

-- I am trying to copy the contents of a dat file to a table in PostgreSQL but getting errors. The dat file has the following:

1, '{{text}},{{NoName}}:{test},{OneName}:{test}'

Table Schema:

Create Table TestInfo (ID int, TestValues text);

I run the following query:

COPY Test from '/opt/Data/TestInfo.dat' WITH DELIMITER AS ',' NULL AS '';

but get the following error

ERROR:  extra data after last expected column

Can some one please help me getting the contents of the dat file copied to the DB?

Thanks

Dernière modification par parora0124 (02/03/2018 00:18:08)

Hors ligne

#2 02/03/2018 02:20:51

jmarsac
Membre

Re : COPY Command with comma in string values - Postgresql 10

Bonsoir,

Ce forum est francophone, c'est pourquoi je vous réponds en français.
Il faut indiquer à Postgres que la partie entre guillemets simples représente  une seule valeur de type texte.

CREATE TABLE t1 (id INTEGER, testvalues TEXT);
COPY t1 FROM '/opt/Data/TestInfo.dat' WITH CSV DELIMITER AS ',' QUOTE AS '''' NULL AS '';
SELECT * FROM t1;

NB: il est recommandé d'utiliser des noms d'objets (tables, colonnes, etc..) en minuscules (Postgres les convertira de toute façon en minuscules à moins de les mettre entre guillemets doubles)

Hors ligne

#3 02/03/2018 19:16:09

parora0124
Membre

Re : COPY Command with comma in string values - Postgresql 10

Merci beaucoup

Hors ligne

Pied de page des forums