2

このクエリを使用して、XML から値を抽出しています

SELECT extractvalue(column_value, '/TransactionLimitDTO/idTxn') "TxnId"
FROM TABLE(XMLSequence(XMLType(mg.limits)
            .extract('/ModifyTransactionLimitRequestDTO/transactionLimit/TransactionLimitDTO'))) t,Mstgloballimitspackage mg

しかし、私はエラーが発生しています:

ORA-00904: "MG"."LIMITS": 識別子が無効です

どうすればこれを解決できますか教えてください。

私はこれを試しました:

 SELECT extractvalue(column_value, '/TransactionLimitDTO/idTxn') "TxnId"
 FROM TABLE(XMLSequence(XMLType(select mg.limits from Mstgloballimitspackage mg)
                          .extract('/ModifyTransactionLimitRequestDTO/transactionLimit/TransactionLimitDTO'))) t

しかし、これも機能していません。

mg.limitsの代わりに完全な XML ファイルを配置すると、引数エラーとして長すぎる文字列リテラルが表示されます。

の代わりに小さな XML を配置するたびに機能しますmg.limits

4

1 に答える 1

1

これはうまくいきます:

 SELECT extractvalue(t.column_value, '/TransactionLimitDTO/idTxn') "TxnId"
     FROM Mstgloballimitspackage mg,
          TABLE(XMLSequence(XMLType(mg.limits,'')
                            .extract('/ModifyTransactionLimitRequestDTO/transactionLimit/TransactionLimitDTO'))) t
于 2012-12-13T07:19:09.733 に答える