将固定宽度的文本文件导入到SQLite

0mkxixxg  于 2022-11-15  发布在  SQLite
关注(0)|答案(3)|浏览(164)

什么是将固定宽度的文本文件导入到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

谢谢

im9ewurl

im9ewurl1#

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

t1rydlwq2#

sqlite3工具仅导入CSV文件。
有一些第三方工具可以导入固定宽度的文件,但这个答案说明了如何在SQLite中使用字符串函数来实现这一点。

kx7yvsdv

kx7yvsdv3#

输入固定长度的文本文件的步骤
1.将整个文件导入包含1列extract的表TestImport
1.编写需要查询的SQL语句或data-transform数据
1.为所有etl需求做额外工作。
步骤1:从文本文件导入并将其保存到db文件。

sqlite> .import C:/yourFolder/text_flat.txt TestImport
sqlite> .save C:/yourFolder/text_flat_out.db

现在你可以用它做各种etl(步骤2和3)。

相关问题