2

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

0 に答える 0