【发布时间】:2019-11-22 06:05:19
【问题描述】:
我正在尝试创建BI Publisher 报告,我正在使用HRC_TXN_DATA、HRC_TXN_HEADER、fa_fusion_soainfra.WFTASK 表。
这里我试图从XML 代码中提取GoalIdList,该代码位于HRC_TXN_DATA 表的data_cache 列中。
我正在使用此代码
XMLTYPE(txn_d.data_cache).EXTRACT('/TRANSACTION/TransCtx/GoalIdList/text()').getStringVal()
注意* 我已经尝试将 text() 更改为 int(),number() 仍然遇到同样的错误。
这是我正在使用的查询
select
wft.ASSIGNEESDISPLAYNAME,
txn_d.STATUS,
XMLTYPE(txn_d.data_cache).EXTRACT(s.column_value,'/TRANSACTION/TransCtx/GoalIdList/int()').getStringVal() Goal_id
from
fa_fusion_soainfra.WFTASK wft
left outer join HRC_TXN_HEADER txn_h on wft.CORRELATIONID = to_char(txn_h.TRANSACTION_ID)
left outer join HRC_TXN_DATA txn_d on txn_h.TRANSACTION_ID = txn_d.TRANSACTION_ID
我收到了这个错误
oracle.xdo.servlet.data.DataException: oracle.xdo.servlet.data.DataException: oracle.xdo.servlet.data.DataException: oracle.xdo.XDOException: java.sql.SQLException: ORA-06502: PL /SQL:数字或值错误 ORA-06512:在“SYS.XMLTYPE”第 272 行 ORA-06512:在第 1 行
【问题讨论】:
-
我认为
CORRELATIONID列不是char或varchar2,我认为它是number或integer,而您将与to_char一起加入它。这是您的包裹中的line 272? -
你有同样的错误吗?
-
正如你所建议的,我将查询替换为“select wft.ASSIGNEESDISPLAYNAME, txn_d.STATUS, XMLTYPE(txn_d.data_cache).EXTRACT('/TRANSACTION/TransCtx/GoalIdList/text()').getStringVal () Goal_id from fa_fusion_soainfra.WFTASK wft left outer join HRC_TXN_HEADER txn_h on wft.CORRELATIONID = txn_h.TRANSACTION_ID left outer join HRC_TXN_DATA txn_d on txn_h.TRANSACTION_ID = txn_d.TRANSACTION_ID" 但现在我得到不同的错误
-
这是我收到的错误消息“oracle.xdo.servlet.data.DataException: oracle.xdo.servlet.data.DataException: oracle.xdo.servlet.data.DataException: oracle. xdo.XDOException: java.sql.SQLSyntaxErrorException: ORA-01722: 无效号码“我不明白什么是无效号码
-
好的,你已经解决了上一个错误,这个错误发生在你的
select-s。尝试在select和from之间一一评论,尝试编译查询会发现问题
标签: sql xml oracle report fusion