2

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 ステートメントで適切に終了していません。その理由がわかりません。何かアイデアはありますか?

4

1 に答える 1

2

SQLServerのSQLダイアレクトをSQLiteで使用しているようですが機能しません。話し始める前に、xmlをSQLiteのSQLダイアレクトに変換する必要があります。具体的には、SQL内で直接ではなくPython / C#/ XSLTなどを使用して、SQLiteが認識しているSQLにxmlを変換します。

于 2012-11-04T01:14:46.077 に答える