Üdv!
Egy PgSQL táblába (pgsql-9.4, win7 x64) szeretnék importálni csv formában adatokat, de hibát ad.
A data.csv:
1;258;2
2;258;2
3;258;2
4;258;1
// ...stb
A pgadmin-ban:
copy data from 'd:/data.csv' with delimiter ';' csv;
A hiba:
ERROR: invalid input syntax for integer: "1"
SQL state: 22P02
Context: COPY data, line 1, column prodid: "1"
A 'data' tábla:
prodid integer NOT NULL,
pid integer NOT NULL,
qty double precision NOT NULL,
Valami olyasmit olvastam a neten, hogy a fájl elején "BOM" miatt lehet a probléma. Másoljam át egy editorral az adatokat, mentsem el egy új fájlba. De nem segített.
Van ötlete valakinek, hogy mi lehet a PgSQL gondja pontosan?
- 1517 megtekintés
Hozzászólások
És ellenőrizted, hogy az új fájl nem BOM-os? (file, Notepad++)
- A hozzászóláshoz be kell jelentkezni
Nem látok ott semmit. Jónak tűnik.
- A hozzászóláshoz be kell jelentkezni
Pedig itt azt írják, hogy BOM nélkül lesz a jó:
http://www.postgresql.org/message-id/CALcq1oOyHaBKojt4W_r9JiYreaUNYsM5S…
Ha megnézed egy hexaeditorral, akkor ezt fogod látni mint különbség:
Szóval Notepad++ lesz a Te barátod. Felső menüsorból kódolás, és alakítsd át a szövegedet valamilyen BOM nélüli kódolásra. Aztán próba.
- A hozzászóláshoz be kell jelentkezni
Megnéztem mc-ben, ott szépen látszódott, hogy BOM van az elején. (Office tehette oda exportáláskor?)
Az mceditben ki tudtam venni simán és már működött is.
Köszönöm!!
- A hozzászóláshoz be kell jelentkezni
Ha nincs BOM, akkor ennek probléma nélkül mennie kéne.
data.csv:
prodid,pid,qty
1,258,2
2,258,2
3,258,2
4,258,1
psql:
\COPY data (prodid,pid,qty) FROM 'd:/data.csv' WITH CSV HEADER;
-
\COPY demo (tbl1,tbl2) FROM 'output.txt' (DELIMITER ';');
- A hozzászóláshoz be kell jelentkezni
Fejléc nem maradt bent ugye?
----------------------------
Előnevelt csirke kapható!
- A hozzászóláshoz be kell jelentkezni