我正在尝试将存储在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语句中正确结束,我无法弄清楚原因。任何想法?
答案 0 :(得分:2)
您似乎使用SQL Server的SQL方言与SQLite无法正常工作。在开始与之交谈之前,您应该将xml转换为SQLite的SQL方言。更具体地说,将您的xml转换为SQLite使用Python / C#/ XSLT等而不是直接在SQL中知道的SQL。