sql连接oracle语法,sql – Oracle连接 – 常规语法与ANSI语法的比较

不久之后,我看到太多的怪人评论Oracle的问题,说“不要使用()运算符,而是使用JOIN语法”。

我确实看到这两个都很好。但是,使用它们的真正区别是什么?我会欢迎答案,更多来自经验。

1. Is there anything to do with limitations in application, performance,

etc. while using them?

2. What would you suggest for me?

我在Oracle documentation读了一些东西,但并不足以让我理解或感受到全面的信息。

注意:我打算迁移200个包和程序,如果使用Keyword而不是()

3. Also is there any freeware tools to do the rewrite?

发布样品

+----------------------------------+------------------------------------------------+

|-INNER JOIN - CONVENTIONAL |-INNER JOIN - ANSI SYNTAX |

|----------------------------------|------------------------------------------------|

|SELECT |SELECT |

| EMP.DEPTNO | ENAME, |

|FROM | DNAME, |

| EMP, | EMP.DEPTNO, |

| DEPT | DEPT.DEPTNO |

|WHERE | FROM |

| EMP.DEPTNO = DEPT.DEPTNO; | SCOTT.EMP INNER JOIN SCOTT.DEPT |

| | ON EMP.DEPTNO = DEPT.DEPTNO; |

|----------------------------------|------------------------------------------------|

|-LEFT OUTER JOIN - CONVENTIONAL |-LEFT OUTER JOIN - ANSI SYNTAX |

|----------------------------------|------------------------------------------------|

|SELECT | SELECT |

| EMP.DEPTNO | ENAME, |

|FROM | DNAME, |

| EMP, | EMP.DEPTNO, |

| DEPT | DEPT.DEPTNO |

|WHERE | FROM |

| EMP.DEPTNO = DEPT.DEPTNO(+);| SCOTT.EMP LEFT OUTER JOIN SCOTT.DEPT |

| | ON EMP.DEPTNO = DEPT.DEPTNO; |

|----------------------------------|------------------------------------------------|

|-RIGHT OUTER JOIN - CONVENTIONAL |-RIGHT OUTER JOIN - ANSI SYNTAX |

|----------------------------------|------------------------------------------------|

|SELECT | SELECT |

| EMP.DEPTNO | ENAME, |

|FROM | DNAME, |

| EMP, | EMP.DEPTNO, |

| DEPT | DEPT.DEPTNO |

|WHERE | FROM |

| EMP.DEPTNO(+) = DEPT.DEPTNO;| SCOTT.EMP RIGHT OUTER JOIN SCOTT.DEPT |

| | ON EMP.DEPTNO = DEPT.DEPTNO; |

|----------------------------------|------------------------------------------------|

|-FULL OUTER JOIN - CONVENTIONAL |-FULL OUTER JOIN - ANSI SYNTAX |

|----------------------------------|------------------------------------------------|

| | |

|SELECT | SELECT |

| * | * |

|FROM | FROM |

| EMP, | SCOTT.EMP FULL OUTER JOIN SCOTT.DEPT |

| DEPT | ON EMP.DEPTNO = DEPT.DEPTNO; |

|WHERE | |

| EMP.DEPTNO = DEPT.DEPTNO(+) | |

|UNION ALL | |

|SELECT | |

| * | |

|FROM | |

| EMP, | |

| DEPT | |

|WHERE | |

| EMP.DEPTNO(+) = DEPT.DEPTNO | |

| AND EMP.DEPTNO IS NULL; | |

|__________________________________|________________________________________________|

PS:阅读所有更新分组的答案摘要。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值