当我运行它时,这是一个多连接查询
错误:ORA-00904:"来自$ _subquery $ _003"。" PSR_PART_NBR":无效标识符
但是,当我向下连接内部连接时,它可以正常工作。有人可以给我逻辑解释连接序列有什么问题。
select vsp.psr_sup_code supcom_sup_code,
vsp.psr_part_nbr supcom_part_number,
PSR_COM_CODE supcom_comm_code,
'' supcom_comments,
vpm.part_mod_user AS supcom_mod_user,
vpm.part_mod_date AS supcom_mod_date,
NULL supcom_map_id,
vsp.psr_reg_code supcom_reg_code,
vsp.psr_prdline_code supcom_prdline_code,
1 supcom_prgs_flag,
NVL (vcs.segment_code, '*') sub_commodity_code
FROM vin_psr_sup_prt_plnt_dtl vsp
INNER JOIN vin_sup_supplier_mst vsm ON (vsp.psr_sup_code = vsm.supplier_code AND vsm.supplier_code_type = 'mstr')
INNER JOIN vin_core_part_mst vpm ON (vsp.psr_part_nbr = vpm.part_number)
LEFT OUTER JOIN v_commodity_segment_structure vcs ON (vpm.commodity_mapping_id = vcs.comdmap_id);
答案 0 :(得分:0)
vsp.psr_sup_code为supcom_sup_code, vsp.psr_part_nbr as supcom_part_number, PSR_COM_CODE为supcom_comm_code,
答案 1 :(得分:-1)
我遇到了由版本11.2.0.4中的错误引起的这个问题,它在使用子查询或ansi join的查询中随机出现。
在我的情况下,我找到了根本原因:它是在我从11.2.0.4执行expdp并且架构具有MATERIALIZED VIEWS时引起的。然后我在其他DataBase中做了一个impdp(10g,11g甚至12c)。某种类型的diccionary问题导致了这个错误。
我解决了这个问题:
EXPDP,不包括MATERIALIZED_VIEWS
IMPDP。有一些与MATERIALIZED_VIEW对象相关的错误,被忽略了。
手动创建所有MATERIALIZED_VIEW对象。
使用“$ ORACLE_HOME / rdbms / admin / utlrp.sql”重新编译数据库中的所有对象
这是错误文档的摘录:
错误17551261 ORA-904"来自$ _subquery $ _003"。查询 重写强>
本说明简要概述了错误17551261。 内容最后更新时间:21-FEB-2014
影响:
产品(组件)Oracle Server(Rdbms)
据信受影响的版本范围版本低于12.1
确认受影响的版本 11.2.0.4
平台影响Generic(受影响的所有/大多数平台)
因此被认为是默认行为的回归:
回归介绍于11.2.0.4已修复: 17551261的修复程序是第一个 包含在•12.1.0.1(基本版本)
中说明这个 问题在11.2.0.4中通过修复bug 14049796引入。
如果出现与以下类似的ORA-904:
ORA-00904:"来自$ _subquery $ _003"。" SUBSCRIBER_SID":无效的标识符 从使用ANSI连接的SQL语句中,可能就是这种情况 如果满足以下所有条件的错误:1)使用摘要重写
2)修复bug:14049796目前(此修复程序包含在11.2.0.4中)
3)errorstack包括kkogvcd()和kkqsgen()
解决方法禁用查询重写