2015-05-29 126 views
-1

我有一個表:無效的輸入語法

   id | detail 
       1 | ddsffdfdf ;df, deef,"dgfgf",/dfdf/ 

當我這樣做:insert into details values(1,'ddsffdfdf ;df, deef'); =>得到了正確插入 當我複製了插入從數據庫值到一個文件,該文件有:1 ddsffdfdf ;df, deef 然後我裝了整個CSV文件向pgsql的數據庫,在格式值:1 ddsffdfdf ;df, deef 錯誤:整數無效的輸入語法:?「1個ddsffdfdf; DF,deef獲得如何解決問題

+1

你是如何加載在PG CSV文件? –

+0

從'/usr/local/bin/details.csv'複製詳細信息; – user3823859

+2

請編輯您的問題,幷包括您用於導入文件的** exact **語句和_file_的**精確**內容。 –

回答

3

CSV的需要Postgres會定義一個分隔符承認將文本分解成各個字段。你的分隔符是一個空間,這是不夠的。 CSV文件應該看起來更像是:

1,"ddsffdfdf df, deef" 

而且你的SQL應該像:

COPY details FROM 'filename' WITH CSV; 

使用CSV的是重要的,因爲它告訴Postgres的使用逗號作爲分隔符,並分析你的基於此的值。因爲第二個字段包含一個逗號,所以您希望將它的值用引號引起來,這樣它的逗號就不會被誤認爲是分隔符。

看一個格式正確的CSV文件的一個很好的例子,可以輸出當前表:

COPY details TO '/your/filename.csv' WITH CSV; 
+0

我已經嘗試過使用分隔符,但它也是錯誤 – user3823859

+0

您誤解了:沒有空格作爲分隔符 – knitti

+0

@ user3823859如果您使用逗號分隔符,則需要圍繞包含逗號的其他值使用適當的引號。 – vol7ron

相關問題