[英]Import CSV data with delimiter tabulation in PostgreSQL
我有一個csv文件,其數據類似於“ 44444 521 hello”。 這里的景象是“ Tabulations”。
我想在名為“ TEST1”的表中導入csv數據,所以我這樣做了:
\copy TEST(attribut1,attribut2,attribut3) FROM '/mnt/c/Users/user1/Desktop/data/test1.csv' WITH DELIMITER E'\t' CSV HEADER;
attribut1 =整數。 attribut2 =整數。 attribut3 = varchar(20)。
它說:
錯誤:整數的無效輸入語法:“ 44444 521 hello”上下文:COPY test1,第2行,列attribut1:“ 4444444 521 hello”
謝謝你的時間。
編輯 :
出現問題是因為您指定了CSV,從而激活了postgres的csv導入規則。 您的文件不會被制表符分隔; 它具有"
在開始和每一行的結束引號這在CSV模式表示‘數據開始’/”數據的”結束,所以每一行視為單個字段,翼片內被視為數據,而不是定界符
要么以文本模式導入它(不指定CSV),要么以CSV模式導入它,但是指定一個不同的引號char(文件中不存在的char,1)以停止"
被當作引號,而2),所以不能將其他字符視為引號)
無論哪種情況,您都必須刪除引號"
chars out of post process-我認為您無法在復制數據時即時處理數據,因此必須首先將其加載到臨時表中,(所有varchar),然后去除引號並將其加載到您的真實表中( REPLACE(data, '"', '')::int
)
或者,你可以文本編輯器文件並刪除"
從它字符,你給它之前的Postgres
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.