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

但这也行不通。

当我将一个完整的 XML 文件代替时,mg.limits我得到一个太长的字符串文字作为参数错误。

每当我将一小段 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 回答