【问题标题】:How to resolve LOAD DATA INFILE issue如何解决 LOAD DATA INFILE 问题
【发布时间】:2010-11-13 04:19:26
【问题描述】:

当我尝试使用这个 sql 语句时:

LOAD DATA INFILE 'url/file.txt'
IGNORE
INTO TABLE myTbl
FIELDS TERMINATED BY '|'
LINES TERMINATED BY '\n'
(SPEC, PERSON, BLAH, BLUH)

我得到这个错误:无效的 SQL 语句;预期为“DELETE”、“INSERT”、“PROCEDURE”、“SELECT”或“UPDATE”。我正在尝试插入访问数据库。关于如何让这个 LOAD DATA INFILE 工作的任何线索?

我的 BULK INSERT 尝试也会出现同样的错误

【问题讨论】:

  • 正如您在其他线程中提到的,这是一个 MySQL 特定的命令。您不能在 MS Access 中使用它。
  • 我认为您将需要一个 schema.ini 文件来使用 SQL 将具有非标准分隔符的文件加载到 Access 中。
  • @Remou - 我就是这么想的。 Access 将哪些分隔符视为标准:逗号和制表符?
  • 只是固定宽度和 csv,恐怕用 ACE/Jet 和 SQL 导入,除非你有 schema.ini。在 Access 本身中,还有很多选项。
  • @Remou - 啊,好吧。我在想 tab-delim 也是标准的。

标签: sql ms-access coldfusion


【解决方案1】:

Load Data infile 是一个 mysql-only sql 命令, 对于 ms access db,您可以使用 vpa 将文本文件导入表中

看这里: http://support.microsoft.com/kb/113905

【讨论】:

    【解决方案2】:

    (正如 cmets 中已经提到的,这是一个特定于 MySQL 的命令。所以 MS Access 不会理解它。)

    MS Access 是一个桌面数据库。因此,它的工具不如企业数据库强大。它确实支持使用IN external database 动态读取csv 文件。但我相信这只适用于 .csv(可能还有制表符分隔)文件。对于其他格式,您需要使用 schema.ini 文件。

    http://office.microsoft.com/en-us/access-help/select-statement-HP001032265.aspx

    INSERT INTO OtherTable ( Columns )
    SELECT  Columns...
    FROM    tableexpression [, ...] [IN externaldatabase]
    

    除了长时间执行 INSERT(逐行)之外,这是我所知道的 MS Access 的唯一选项。

    【讨论】:

      【解决方案3】:

      这些是 MySQL 的命令。您不能在访问中使用它们。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2015-09-05
        • 2014-01-31
        • 2011-10-24
        • 2021-02-02
        • 2014-01-25
        • 2014-02-18
        • 2017-11-04
        相关资源
        最近更新 更多