【发布时间】:2013-10-30 03:54:43
【问题描述】:
以下代码适用于非整数。
我有几个带有整数的标签(比如<1>、<2> 等),
SET serveroutput ON
alter session set cursor_sharing = exact;
with xmldata(d) as (select xmltype('<ROWSET><ROW><1>ABC</1></ROW></ROWSET>') from dual
)
select x.*
FROM xmldata,
xmltable('ROWSET/ROW' passing xmldata.d
columns
name varchar2(10) path '1'
) x
;
我也试过用这个:
DECLARE
l_xml xmltype;
l_val VARCHAR2(1000) := '<ROWSET><ROW><1>ABC</1></ROW></ROWSET>';
BEGIN
l_xml := xmltype(l_val);
end;
两者都会导致以下错误:
Error report:
ORA-31011: XML parsing failed
ORA-19202: Error occurred in XML processing
LPX-00231: invalid character 49 ('1') found in a Name or Nmtoken
Error at line 1
ORA-06512: at "SYS.XMLTYPE", line 310
ORA-06512: at line 5
31011. 00000 - "XML parsing failed"
*Cause: XML parser returned an error while trying to parse the document.
*Action: Check if the document to be parsed is valid.
提前感谢和赞赏:)
【问题讨论】:
-
您运行的是哪个 Oracle 版本?
-
Eeek....这是 11gR2 的基本版本。我强烈建议尽快升级到 11.2.0.4.0。
标签: sql xml oracle plsql oracle11g