2013-03-19 73 views
2

我想使用'copy'命令將csv文件導入到我的postgres表中。包含逗號的值已被雙引號包圍,但似乎找不到使用'copy'命令沒有任何錯誤地將它們加載到postgres表中的選項。如何在將表導入PostgreSQL時在CSV值內轉義逗號?

'複製' 命令我使用:違規CSV行的

CREATE TABLE candidates (Sno int, name varchar, cases int, case_details varchar, .....); 
copy candidates from 'something.csv' with NULL AS ' ' csv ; 

實施例:

1, "some name", 2, "(1):IPC Sections - 147, 323, 352, 504, 506 , Other Details - Case no.283A/2000, A.C.J.M-5, Ghumangunj Ellahabad, UP, Dt.12.11.2000", ..... 

上方case_details屬性具有在其值的逗號。這是我的問題。

+0

您的CSV是由Microsoft產品生成的嗎?在這種情況下,它可能有奇怪的引用 - http://stackoverflow.com/questions/14573623/whats-a-semantically-correct-way-to-parse-csv-from-sql-server-2008 - 如果是這樣,你可以使用提供的ruby方法轉換爲「正常」CSV並使用postgresql的COPY – 2013-03-19 17:43:05

+0

@ muistooshort問題詳細信息更新加載。 – 2013-03-19 17:51:33

+0

@SeamusAbshere號我的csv文件的值中帶有逗號。請參閱更新的問題詳細信息以獲取更多信息 – 2013-03-19 17:52:21

回答

1

對我的作品(PG 9.2和Linux):

$ cat something.csv 
1, "some name", 2, "(1):IPC Sections - 147, 323, 352, 504, 506 , Other Details - Case no.283A/2000, A.C.J.M-5, Ghumangunj Ellahabad, UP, Dt.12.11.2000" 

$ psql test 
test=> CREATE TABLE candidates (Sno int, name varchar, cases int, case_details varchar); 
CREATE TABLE 
test=> \copy candidates from 'something.csv' with NULL AS ' ' csv ; 
test=> select * from candidates ; 
sno | name | cases |                case_details                
-----+------------+-------+-------------------------------------------------------------------------------------------------------------------------------------- 
    1 | some name |  2 | (1):IPC Sections - 147, 323, 352, 504, 506 , Other Details - Case no.283A/2000, A.C.J.M-5, Ghumangunj Ellahabad, UP, Dt.12.11.2000 
(1 row) 
+0

得到了愚蠢的錯誤。現在也適合我! – 2013-03-19 18:48:46

+0

對於我來說,缺少的部分是'與NULL''csv'我認爲csv關鍵字是什麼使其尊重的邊界。 – Ali 2014-02-28 23:31:37

1

可能的解決方法 - 在任何其它字符代替引號昏迷,加載數據,更換昏迷了。

0

的phpPgAdmin的工具是沒有足夠的智慧來處理逗號。 Postgres足夠聰明來處理它們。它首先使用逗號將輸入文件中給定行中的數據分割開來,然後自動將引號放在值後面。所以沒有辦法與客戶做。至少在版本5.1中是這樣的。他們可能已經修復它在更高版本。

所以,如果你從phpPgAdmin的工具導入,請用逗號「」或者是與數據分開的東西,然後在導入後運行SQL查詢來修復。

相關問題