我有一个使用 Editplus(在 Windows 中)创建的示例 xml 文件。
< ?xml 版本="1.0" 编码="UTF-8" ?> <徽章> <row UserId="3714" Name="教师" 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 从双), 5 XMLTable('for $i in /badges/row 6 返回$i' 7 传递xml_data 8 列 UserId NUMBER 路径 '@UserId', 9 名称 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。有人可以建议进行更正以使查询正常工作。
谢谢。