将固定宽度的文本文件导入sqlite

将固定宽度的文本文件导入sqlite,sqlite,text,fixed-width,Sqlite,Text,Fixed Width,最好不使用外围软件,将固定宽度的文本文件导入sqlite表的好方法是什么 例如,指定每个字段的宽度 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 线路 AABCDEFGHIJABCDEA

最好不使用外围软件,将固定宽度的文本文件导入sqlite表的好方法是什么

例如,指定每个字段的宽度

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

谢谢sqlite3工具只导入CSV文件


有第三方工具可以导入固定宽度的文件,但展示了如何在SQLite中使用字符串函数来实现这一点。

以上答案中的链接是针对通用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

谢谢这节省了我很多时间。为了完整起见,如果有人试图导入具有可变长度最后一列的固定宽度文本文件,则只需省略相应的
SUBSTR
(例如
,SUBSTR(完整字符串,10)中的第三个参数作为可变长度最后一列
。这将返回该行上的所有剩余文本。