【问题标题】:MS Access: SQL to insert tab separated value file into a table?MS Access:SQL 将制表符分隔值文件插入表中?
【发布时间】:2014-07-26 20:54:11
【问题描述】:

我已经设法使用 SQL 命令插入逗号分隔的 txt 文件的内容

string sql = "INSERT INTO [" + tableName + "] SELECT * FROM [text;database=" + filePath + "].[" + fileName + "]";

有没有办法为制表符分隔值修改此命令或更一般地允许自定义分隔符?请注意,数据库的类型是 .mbd,而不是 SQL Server。

【问题讨论】:

  • 使用参数化查询进行插入
  • @RajMore:那不需要读取文件吗?你能解释一下你的意思吗?
  • 文件有多大?
  • @RajMore:
  • 如果一个 5k 文件的每行有 400 个字符,那么您看到的是每行 2MB。您确定每行有 2MB 数据有充分的理由吗?

标签: sql ms-access


【解决方案1】:

使用外部数据导入 > 导入和链接 > 文本文件 保存该导入,然后从这里开始使用该Saved Import

根据您的数据,是否最好在进行验证检查之前导入临时表,然后导入您的真实表。

另请参阅: Programmatically import CSV data to Access

How can I modify a saved Microsoft Access 2007 or 2010 Import Specification?

【讨论】:

    【解决方案2】:

    事实证明,我需要做的只是将 Schema.ini 文件添加到包含文本文件的目录中。我这样做如下:

    string schemaFilePath = filePath + "\\" + "Schema.ini";
    StreamWriter writer = new StreamWriter(schemaFilePath, false);
    writer.WriteLine("[" + fileName + "]");
    writer.WriteLine("Format=TabDelimited");
    writer.Close();
    

    我在执行插入命令后循环执行并删除了架构文件。

    【讨论】:

      猜你喜欢
      • 2022-07-08
      • 1970-01-01
      • 2013-03-09
      • 1970-01-01
      • 2023-03-10
      • 1970-01-01
      • 2013-12-27
      • 2013-05-22
      • 1970-01-01
      相关资源
      最近更新 更多