2013-09-26 15 views
9

Mam pliku CSV (y.csv) w formacie folowing:Kopiowanie wartości NULL obecne w pliku csv do PostgreSQL

's', '1999-10-10', '1999-12-12' 
'b', '99-10-10 BC', '1-10-10 BC' 
'c', 'NULL', 'NULL' 

Mam kilka wartości NULL (na bieżąco) w nim, które zostały wskazane przez ja ciąg "NULL".

Próbuję skopiować plik csv do PostgreSQL. Za to ja stworzyliśmy tabelę:

create table r (id character varying(255), timebegin date, timeend date); 

Teraz usiłuję skopiować powyższy plik .csv do PostgreSQL za pomocą polecenia

copy r from '/home/y.csv' delimiter ',' csv; 
ERROR: invalid input syntax for type date: " 'NULL'" 
CONTEXT: COPY r, line 1, column timebegin: " 'NULL'" 

W ten sposób otrzymuję błąd z NULL. Czy ktoś może mi pomóc w wykryciu błędu i poprawić go.

Odpowiedz

21

Czy próbowałeś?

copy r from '/home/y.csv' delimiter ',' csv WITH NULL AS 'null'; 
+6

Próbuję, ale otrzymuję ten błąd: 'BŁĄD: błąd składniowy w lub w pobliżu" Z NULL "'; – monteirobrena

+5

'copy r od '/home/y.csv' z ogranicznikiem jako ',' NULL AS 'null' csv;' Nie wiem, czy składnia została zmieniona w późniejszej wersji pgsql, ale to działało dla mnie. –

+3

@monteirobrena, zostaw "Z". Będzie działać bez niego. –

1

Błąd polega na wstawianiu NULL jako łańcucha. Usuń cytaty z numeru NULL i powinno działać.

+0

To nie jest rozwiązanie. Co jeśli był to zautomatyzowany proces? – Kermit

+1

@FreshPrinceOfSO: Wiem, że to może nie być idealne rozwiązanie, ale jak to zostało wspomniane w pytaniu jako "Mam kilka wartości NULL (dla daty) w nim, które wskazałem przez ciąg" NULL ". Jest jasne że błąd był spowodowany próbą wstawienia ciągu znaków w kolumnie daty. – heretolearn

Powiązane problemy