Strange error with XMLTABLE on Oracle 11g Strange error with XMLTABLE on Oracle 11g oracle oracle

Strange error with XMLTABLE on Oracle 11g


According to my experience it is a good idea to add a further column for ordinality to the xmltable.

This SQL statement works fine:

with data as(  select '<A><B>B21</B></A>' x from dual),extractedxml as (  SELECT b  FROM data d,       xmltable('/A/B' PASSING xmltype(d.x) COLUMNS i FOR ORDINALITY, b varchar2(20) PATH '.'))select b from extractedxml union select b from extractedxml;

Another fatal problem caused by omiting the column for ordinality:

with data as(  select xmltype('<A><B>B21</B></A>') x from dual),extractedxml as (  SELECT b  FROM data d,       xmltable('/A/B' PASSING d.x COLUMNS b varchar2(20) PATH '.'))select b from extractedxml union select b from extractedxml;>> no result (!)

But

with data as(  select xmltype('<A><B>B21</B></A>') x from dual),extractedxml as (  SELECT b  FROM data d,       xmltable('/A/B' PASSING d.x COLUMNS i FOR ORDINALITY, b varchar2(20) PATH '.'))select b from extractedxml union select b from extractedxml;>> B21