rspec/rules/S2529/plsql/rule.adoc
2024-05-03 18:07:03 +02:00

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[]