我试图在 oracle 表中查询 xml 文件以创建视图。我无法使用多个命名空间来查询数据。例如 planStructures 是 prd: 命名空间的一部分,而 externalProductIdentifiers 中的标识符是 util: 命名空间的一部分。以下是用于查询的sql和xml文件的片段
XMLTABLE (XMLNameSpaces( DEFAULT 'http://www.cigna.com/ifp/domains/product/2012/06'),'/planStructure'
PASSING root_planStructures.planStructure
COLUMNS
plnStrctExtPrdId XMLTYPE PATH 'externalProductIdentifiers',
plnStrctInfo XMLTYPE PATH 'planStructureInformation',
clientInfo XMLTYPE PATH 'clientInformation',
financialStruct XMLTYPE PATH 'financialStructure'
) root_planStructure,
XMLTABLE (XMLNameSpaces( DEFAULT 'http://www.cigna.com/ifp/domains/product/2012/06'),'/externalProductIdentifiers'
PASSING root_planStructure.plnStrctExtPrdId
COLUMNS
ExtPrdIdUtilID XMLTYPE PATH 'identifier'
) plnStrctPlnStrctExtPrdId
XMLTABLE (DEFAULT 'http://www.cigna.com/ifp/domains/utility/2012/06'), '/identifier'
PASSING plnStrctPlnStrctExtPrdId.ExtPrdIdUtilID
COLUMNS
idType VARCHAR2 (100) PATH '@type',
idDate VARCHAR2 (100) PATH '@date',
singleValueType VARCHAR2 (100) PATH 'singleValueID/@type',
singleValueDate VARCHAR2 (100) PATH 'singleValueID/@date',
singleValueID VARCHAR2 (100) PATH 'singleValueID'
) externalProductIdentifiersID
示例 xml 片段:
<planStructures>
<planStructure>
<externalProductIdentifiers>
<util:identifier type="HPS">
<util:singleValueID type="HPSPlanID">PPO50SC</util:singleValueID>
</util:identifier>
<util:identifier type="Colibrium">
<util:singleValueID type="ColibriumPlanID">PPO50SC</util:singleValueID>
</util:identifier>
<util:identifier type="Salesforce">
<util:singleValueID type="SalesforcePlanID">a0kV0000000SnSiIAK</util:singleValueID>
</util:identifier>
</externalProductIdentifiers>