ORA-01417 表可以外部连接到至多一个其他的表
问题:测试环境没有报错,PRD环境 Oracle DB 报错:
ORA-01417 表可以外部连接到至多一个其他的表

报错原因:不能左连接多个表
- 有表A,B,C ;表B可以连接到A,然后C可以连接到B:
select ... from A, B, C
where A.column = B.column(+)
and B.column2 = C.column2(+);
但是不能C连接到A, 然后C又连接到B :
select ... from A, B, C
where A.column = C.column(+)
and B.column2 = C.column2(+);
此时C表左连接了两个表,会报 ora-01417:表可以外部连接到至多一个其它的表
- 但是该报错,还与Oracle的版本有关系:
PRD环境的版本:Oracle Database 11g报错。
QAS测试环境版本:Oracle Database 19c Standard Edition 2,高版本没有报错。
-- 查看Oracle DB版本
SELECT * FROM product_component_version;
-- 或者
select * from v$instance;
PRD版本:

QAS 版本:

在PRD环境中,Oracle数据库在尝试左连接多个表时出现'ORA-01417 表可以外部连接到至多一个其他的表'错误,而相同操作在高版本的QAS测试环境中并未报错。问题涉及表A、B、C之间的连接关系,当C同时连接A和B时触发该错误,表明不同Oracle版本可能对连接操作有不同的限制。
987

被折叠的 条评论
为什么被折叠?



