【问题标题】:Import fixed-width text file into sqlite将固定宽度的文本文件导入 sqlite
【发布时间】:2012-09-14 11:52:47
【问题描述】:

有什么好的方法可以将固定宽度的文本文件导入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

谢谢

【问题讨论】:

    标签: sqlite text fixed-width


    【解决方案1】:

    以上答案中的链接适用于通用 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(full_string, 10) AS variable_length_last_column。这将返回所有剩余的文本行。
    【解决方案2】:

    sqlite3 工具仅导入 CSV 文件。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-13
      • 1970-01-01
      • 2013-01-01
      • 1970-01-01
      相关资源
      最近更新 更多