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
BEGIN
-- Noncompliant
SELECT *
INTO employeesArray
FROM employee, department
WHERE employee.DepartmentID = department.ID(+);
END;
/
Compliant solution
BEGIN
-- Compliant
SELECT *
INTO employeesArray
FROM employee LEFT OUTER JOIN department
ON employee.DepartmentID = department.ID;
END;
/