以下のコードは、整数以外でもうまく機能します。
整数を含むタグがいくつかあります(たとえば<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.
よろしくお願いします:)