Oracle DB版本与“ORA-01417 表可以外部连接到至多一个其他的表”报错

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

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

ORA-01417 表可以外部连接到至多一个其他的表

问题:测试环境没有报错,PRD环境 Oracle DB 报错:

ORA-01417 表可以外部连接到至多一个其他的表

在这里插入图片描述

报错原因:不能左连接多个表

  1. 有表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:表可以外部连接到至多一个其它的表
  1. 但是该报错,还与Oracle的版本有关系:
    PRD环境的版本:Oracle Database 11g 报错。
    QAS测试环境版本:Oracle Database 19c Standard Edition 2,高版本没有报错。
-- 查看Oracle DB版本
SELECT * FROM product_component_version;
-- 或者
select * from v$instance;

PRD版本:
PRD DB Version
QAS 版本:
QAS DB Version

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值