ビューを作成するために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>