2012-09-14 63 views
2

將固定寬度的文本文件導入sqlite表格最好不使用外圍軟件,一種好的方法是什麼?將固定寬度的文本文件導入sqlite

E.g.每個域

Field 1: 10 characters starting with the second character 
Field 2: 5 characters starting with the twelfth character 
Field 3: 7 characters starting with the eighteenth character 

AABCDEFGHIJABCDEAABCDEFGA 

的寬度將導入爲:

Field 1  Field 2 Field 3 
ABCDEFGHIJ ABCDE ABCDEFG 

感謝

回答

0

sqlite3工具只導入CSV文件。

有第三方工具可以導入固定寬度的文件,但this answer顯示瞭如何在SQLite中使用字符串函數執行此操作。

5

上面的答案中的鏈接是針對通用SQL的。這裏有一種方法可以在SQLite中實現:

CREATE TABLE fixed_width_table (full_string CHAR); 
.import fixed_width_file.txt fixed_width_table 

CREATE TABLE tmp AS 
Select 
    SUBSTR(full_string,1,11) AS field1 
    ,SUBSTR(full_string,2,5) AS field2 
    ,SUBSTR(full_string,2,7) AS field3 
FROM fixed_width_table 
+2

謝謝!這節省了我很多時間。爲了完整起見,如果有人試圖導入一個固定寬度的文本文件的最後一列變長,那麼就省略相應的SUBSTR中的第三個參數(例如',SUBSTR(full_string,10)AS variable_length_last_column')。返回該行上的所有剩餘文本。 – perNalin

相關問題