从XML导入数据到SQLite

时间:2012-11-04 00:45:35

标签: sql xml sqlite

我正在尝试将存储在XML文件中的数据导入我的SQLite数据库。 insert查询类似于以下内容:

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语句中正确结束,我无法弄清楚原因。任何想法?

1 个答案:

答案 0 :(得分:2)

您似乎使用SQL Server的SQL方言与SQLite无法正常工作。在开始与之交谈之前,您应该将xml转换为SQLite的SQL方言。更具体地说,将您的xml转换为SQLite使用Python / C#/ XSLT等而不是直接在SQL中知道的SQL。