sql - 将数据从 XML 导入 SQLite

标签 sql xml sqlite

我正在尝试将存储在 XML 文件中的数据导入到我的 SQLite 数据库中。插入查询如下所示:

INSERT INTO table1 VALUES (rank, name)
SELECT X.record.query('rank').value('.', 'INT'),
       X.record.query('name').value('.', 'VARCHAR(30)')
FROM (
  SELECT CAST(x AS XML)
  FROM OPENROWSET(BULK 'data.xml', SINGLE_BLOB) AS T(x)
     ) AS T(x)
CROSS APPLY x.nodes('data/record') AS X(record);

XML 数据如下所示:

<data>
    <record>
        <rank>1</rank>
        <name>One</name>
    </record>
    <record>
        <rank>2</rank>
        <name>Two</name>
    </record>
    ...
</data>

但是,我收到“SQL 命令在外部 SELECT 语句处未正确结束,我不明白为什么。有什么想法吗?

最佳答案

您似乎正在将 SQL Server 的 SQL 方言与 SQLite 一起使用,但这不起作用。在开始与 SQLite 对话之前,您应该将 xml 转换为 SQLite 的 SQL 方言。更具体地说,使用 Python/C#/XSLT 等而不是直接在 SQL 中将您的 xml 转换为 SQLite 识别的 SQL。

关于sql - 将数据从 XML 导入 SQLite,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13215005/

相关文章:

SQL插入所有数据到桥表,(多对多)

java - 无法使用 RestTemplate 解析 REST 响应

SQLite.NET PCL 繁忙异常

java - ListFragment 在手机上出现两次

java - XML 作为 Vaadin 树的数据源

python - sqlite3 数据类型中的拼写错误但仍然有效,为什么?

ruby-on-rails - Ruby on rails - 参数数量错误(2 为 1)[Rails]

SQL 改变类型

mysql - 按年份连接 SQL 结果(年份、品牌、型号)

python - 了解 SQLAlchemy 中的中间 SQL 语句