不久之后,我看到太多的怪人评论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,| | 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,| | 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:阅读所有更新分组的答案摘要。