47 lines
1011 B
Plaintext
47 lines
1011 B
Plaintext
== Why is this an issue?
|
|
|
|
Developers should use the `FROM ... OUTER JOIN` syntax rather than the Oracle join operator (`+`). The reason is that outer join queries that use `+` are subject to several restrictions which do not apply to the `FROM ... OUTER JOIN` syntax. For instance, a `WHERE` condition containing the `+` operator cannot be combined with another condition using the `OR` logical operator.
|
|
|
|
|
|
=== Noncompliant code example
|
|
|
|
[source,sql]
|
|
----
|
|
BEGIN
|
|
-- Noncompliant
|
|
SELECT *
|
|
INTO employeesArray
|
|
FROM employee, department
|
|
WHERE employee.DepartmentID = department.ID(+);
|
|
END;
|
|
/
|
|
----
|
|
|
|
|
|
=== Compliant solution
|
|
|
|
[source,sql]
|
|
----
|
|
BEGIN
|
|
-- Compliant
|
|
SELECT *
|
|
INTO employeesArray
|
|
FROM employee LEFT OUTER JOIN department
|
|
ON employee.DepartmentID = department.ID;
|
|
END;
|
|
/
|
|
----
|
|
|
|
ifdef::env-github,rspecator-view[]
|
|
|
|
'''
|
|
== Implementation Specification
|
|
(visible only on this page)
|
|
|
|
=== Message
|
|
|
|
Refactor this SQL to use standard join syntax.
|
|
|
|
|
|
endif::env-github,rspecator-view[]
|