在我的oracle db im迁移后,出现以下错误:
ORA-00904: "from$_subquery$_014"."TRN_TERMINAL_SOFTWARE_VERSION": invalid identifier
以下是我的查询:
SELECT * FROM ( SELECT SUM(trn_amt) AS amount, SUM(trn_count) AS COUNT , timetype AS period , seq , ROW_NUMBER() OVER (ORDER BY vw.seq DESC) AS RowNumber FROM YSD_STORE_FORWARD_V vw INNER JOIN store_dimension std ON vw.stm_id=std.std_id INNER JOIN card_type_dimension ctd ON vw.CTD_CARD_ABBV=ctd.CTD_CARD_ABBV INNER JOIN STPLDBTEMP.store_group_relation sgr ON std.STD_ID= sgr.sgr_store_id INNER JOIN location_dimension ld ON ld.lod_id=std.std_location_id WHERE start_date BETWEEN 20170405 AND 20170405 AND std.std_corp_id ='1939' AND sgr.sgr_sgm_id ='2160' AND ctd.CTD_CARD_ABBV IN ('VE','VI','VS','VD','AX','AE','MD','MC','MF','XX' ,'DB','JB','NV','DS','EB','EBC','EBF','EBW','VF','VG','WX','DC','GF','PL' ,'PW','NM','BG','GC','FL','FO','FT','FW','INV','IV','IN','CP') AND LD.LOD_COUNTRY_ID = 1 GROUP BY timetype , seq ORDER BY 4
);
我仍未在查询中使用列,但仍收到此错误,请帮助我YSD_STORE_FORWARD_V使用正在实例化的视图包含TRN_TERMINAL_SOFTWARE_VERSION列的视图,但我的工作很好。
YSD_STORE_FORWARD_V
TRN_TERMINAL_SOFTWARE_VERSION
这是Oracle 11.2.0.4中的错误,在使用子查询或ansi联接的查询中随机出现。
在我的情况下,我找到了根本原因:是由于我从11.2.0.4执行expdp导致的,并且该模式具有MATERIALIZED VIEWS。然后,我在其他数据库(10g,11g甚至12c)中做了一个impdp。某些地方问题导致该错误。
我解决了这个问题:
EXPDP,不包括MATERIALIZED_VIEWS
IMPDP。与MATERIALIZED_VIEW对象有关的一些错误被忽略。
手动创建所有MATERIALIZED_VIEW对象。
使用$ ORACLE_HOME / rdbms / admin / utlrp.sql重新编译数据库中的所有对象。
这是错误文档的摘录:
错误17551261 ORA-904“来自$ _subquery $ _003”。 与查询重写 本说明对错误17551261进行了简要概述。内容最后更新于:2014年2月21日 影响: 产品(组件)Oracle Server(Rdbms) 可能受影响的版本范围版本低于12.1 确认受影响的版本 11.2.0.4 受影响的平台通用(受影响的所有/大多数平台) 因此,它被认为是默认行为的回归: 11.2.0.4中引入的回归 已修复: 17551261的修复程序首先包含在12.1.0.1(基本版本)中 说明 此问题是由错误14049796的修补程序在11.2.0.4中引入的。 如果引发类似于以下内容的ORA-904: ORA-00904:“ from $ _subquery $ _003”。“ SUBSCRIBER_SID”: 使用ANSI联接的SQL语句中的 无效标识符 ,那么,如果所有以下是正确的: 1)使用摘要重写 2)修复存在的bug:14049796(此修复包含在11.2.0.4中) 3)错误堆栈包括kkogvcd()和kkqsgen() 解决方法 禁用查询重写
错误17551261 ORA-904“来自$ _subquery $ _003”。 与查询重写
本说明对错误17551261进行了简要概述。内容最后更新于:2014年2月21日
影响:
产品(组件)Oracle Server(Rdbms)
可能受影响的版本范围版本低于12.1
确认受影响的版本 11.2.0.4
受影响的平台通用(受影响的所有/大多数平台)
因此,它被认为是默认行为的回归: 11.2.0.4中引入的回归
已修复: 17551261的修复程序首先包含在12.1.0.1(基本版本)中
说明 此问题是由错误14049796的修补程序在11.2.0.4中引入的。
如果引发类似于以下内容的ORA-904: ORA-00904:“ from $ _subquery $ _003”。“ SUBSCRIBER_SID”: 使用ANSI联接的SQL语句中的 无效标识符 ,那么,如果所有以下是正确的:
1)使用摘要重写
2)修复存在的bug:14049796(此修复包含在11.2.0.4中)
3)错误堆栈包括kkogvcd()和kkqsgen()
解决方法 禁用查询重写