Editplus(Windows の場合) を使用して作成されたサンプル xml ファイルがあります。
< ?xml バージョン="1.0" エンコーディング="UTF-8" ?> <バッジ> < row UserId="3714" Name="Teacher" Date="2008-09-15T08:55:03.923"/> < row UserId="994" Name="Teacher" Date="2008-09-15T08:55:03.957"/> < / バッジ>
ここでの私の目標は、この情報を Oracle DB テーブルに入れることです。ここで示唆されているようにhttps://stackoverflow.com/questions/998055?sort=newest#sort-top、SQLコマンドを実行しようとしました。しかし、成功することはできませんでした、
========================= SQLクエリ1 ===================== ======
SQL> SELECT XMLTYPE(bfilename('D', 'tmp.xml'), nls_charset_id('UTF8')) xml_data FROM dual;
XML_DATA
------------------------------------------------------------
<?xml version="1.0" encoding="WINDOWS-1252"?>
<badges>
<row UserId="3714" Name
出力では、xml ファイルの半分が切り捨てられていることがわかります。また、出力のエンコーディング タイプは WINDOWS-1252 と表示されます。誰かがなぜそれが起こっているのか説明できますか?
================================================== ========================
=============================== SQLクエリ2 ================ ===============
SQL> SELECT UserId, Name, to_timestamp(dt, 'YYYY-MM-DD"T"HH24:MI:SS.FF3') dt
2 FROM (SELECT XMLTYPE(bfilename('D', 'tmp.xml'), 3 nls_charset_id('WINDOWS-1252')) xml_data 4 FROM デュアル)、 5 XMLTable(' for $i in /badges/row 6 リターン $i' 7 xml_data を渡す 8 列 UserId NUMBER path '@UserId', 9 Name VARCHAR2(50) パス '@Name', 10 dt VARCHAR2(25) パス '@Date');XMLTable('for $i in /badges/row * ERROR at line 5: ORA-00933: SQL command not properly ended
================================================== =================== 同じクエリがここで機能していましたhttps://stackoverflow.com/questions/998055?sort=newest#sort-top。しかし、私にとってはそうではありません。私のマシンには oracle 10g がインストールされています。誰かがクエリを機能させるための修正を提案できますか。
ありがとう。