XMLTable可以做到这一点。 我必须对您的XML进行两个小更改-我删除了命名空间,并修复了“ NUmber”的大小写。 我敢肯定,有一种方法可以处理Oracle XML中的名称空间,我只是没有经验。 但是,您需要确保XML在语法上是有效的,否则将不会加载。
select OrderNumber, FirstName, MiddleName, LastName, EGN, RelativeType
from
(
select xmltype('
3
Undefined
George
Francis
Rosetown
*******
1
1
Louis
Matel
Johnson
********
Spouse
2
Jack
Francis
Rosetown
**********
Son
2019-09-05T15:22:42.6829678+03:00
') relative_xml
from dual
), xmltable('/Response/StatusResponse/Relatives/Relative'
passing relative_xml
columns
OrderNumber number path 'OrderNumber',
FirstName varchar2(4000) path 'FirstName',
MiddleName varchar2(4000) path 'MiddleName',
LastName varchar2(4000) path 'LastName',
EGN varchar2(4000) path 'EGN',
RelativeType varchar2(4000) path 'RelativeType'
);
结果:
ORDERNUMBER FIRSTNAME MIDDLENAME LASTNAME EGN RELATIVETYPE
----------- --------- ---------- -------- ---------- ------------
1 Louis Matel Johnson Spouse
2 Jack Franci Rosetown ********** Son