重庆思庄Oracle、KingBase、PostgreSQL、Redhat认证学习论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 302|回复: 0
打印 上一主题 下一主题

[Oracle] 升级到ORACLE 12c后不允许外连接运算符 ORA-30563

[复制链接]
跳转到指定楼层
楼主
发表于 2026-1-11 11:46:46 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
那些使用外连接运算符(+)和CONNECT BY和ORDER BY子句的查询遇到ORA-30563

例子:

SQL> SELECT markfor
FROM
(SELECT
nvl(fdst.short_text,' ') markfor,
wlr.LABEL_REQUEST_ID
FROM
WMS_LABEL_REQUESTS wlr,
wsh_deliverables_v wdv,
<...snipped...>
AND ROWNUM=1 ;
ORDER BY fad.last_update_date(+) desc
*
ERROR at line 32:
ORA-30563: outer join operator (+) is not allowed here


SQL> select * from
2 (
3 select distinct
<...snipped...>
151 where seq=cnt start with seq=1 connect by prior seq+1=seq
152 and prior user_key=user_key(+) ) M
153 where user_details.USER_KEY = M.USER_KEY(+)
154 AND USER_DETAILS.USER_LEVEL_TYPE_CD not in (2,4)
155 )
156 order by 3 ;
and prior user_key=user_key(+) ) M
*
ERROR at line 152:
ORA-30563: outer join operator (+) is not allowed here



原因

数据库升级到12c


这是12c中的预期行为


解决方案

重写查询并从connect by/order子句中删除(+)。




分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 支持支持 反对反对
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|手机版|小黑屋|重庆思庄Oracle、Redhat认证学习论坛 ( 渝ICP备12004239号-4 )

GMT+8, 2026-4-17 20:56 , Processed in 0.229340 second(s), 20 queries .

重庆思庄学习中心论坛-重庆思庄科技有限公司论坛

© 2001-2020

快速回复 返回顶部 返回列表