一个可以在SQL server运行,但是在Oracle不能运行的CTE 的SQL语句

GCC-pig 2015-06-17 10:16:33
在Oracle11g中有个EMP表,然后想用一个嵌套CTE SQL查询出每个员工与领导之间的关系。这个SQL可以在SQL Server但是不能再Oracle中运行。代码和报错如下:
SQL> WITH SCOTT_EMP(EMPNO,MGR,ENAME,T) AS(
2 SELECT EMPNO,MGR,ENAME,0 T FROM EMP WHERE MGR IS NULL
3 UNION all
4 SELECT E.EMPNO,E.MGR,E.ENAME,M.T+1 FROM EMP E
5 INNER JOIN SCOTT_EMP M ON E.MGR=M.EMPNO
6 )
7 SELECT * FROM SCOTT_EMP;
WITH SCOTT_EMP(EMPNO,MGR,ENAME,T) AS(
*
ERROR at line 1:
ORA-32033: unsupported column aliasing


SQL>
...全文
146 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
碧水幽幽泉 2015-06-17
  • 打赏
  • 举报
回复
楼主,你的数据库版本是什么? 你确认是Oracle 11g R2吗? 根据Oracle官方文档描述,貌似Oracle11g R2之后才支持增强型的WITH 语句
chengccy 2015-06-17
  • 打赏
  • 举报
回复
11g已经支持
卖水果的net 2015-06-17
  • 打赏
  • 举报
回复
oracle 不支持 with cte 的内部引用自己。

17,090

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧