2013-10-09 141 views
0

我想從一個CSV整數主鍵導入數據從CSV到sqlite3數據庫。在閱讀this SO question後,我創建了一個臨時表來導入csv文件中的11列。CSV導入錯誤SQLite3

數據:

a||b||c||d||e||f||g||h||i||j||k 
l||m||n||o||p||q||r||s||t||u||v 

我試圖

.separator "||" 
.import path/to/table tableName 

我得到以下錯誤:

Error: path/to/table line 1: expected 11 columns of data but found 21 

我在做什麼錯? csv文件的格式應該不同嗎?

注意: 該列表是使用類似於下面的方法在AppleScript中構建的。 bash中的回顯是否會導致問題?

set delim to "||" 
set myList to {"a", delim, "b", delim, "c", delim, "d", delim, "e", delim, "f", delim, "g", delim, "h", delim, "i", delim, "j", delim, "k", return, "l", delim, "m", delim, "n", delim, "o", delim, "p", delim, "q", delim, "r", delim, "s", delim, "t", delim, "u", delim, "v", return} 
set myList to myList as text 
set outPath to POSIX path of (path to desktop as text) & "data.csv" 
do shell script "echo " & quoted form of myList & " > " & quoted form of outPath 
+0

您使用的是哪一行分隔符? –

+0

行分隔符是一個sqlite3選項,還是您引用了csv文件? – adayzdone

+0

詢問是否將刪除換行,則會有21個字段。 –

回答

1

return(0X0D)本身似乎並沒有成爲.import公認的行分隔符

嘗試用替換return(雖然它可能因版本,因爲我.import也將只接受單一的分隔符會發生變化) linefeed在你生成的AppleScript中。

+0

完美...謝謝! – adayzdone