rspec/rules/S5141/plsql/rule.adoc
2020-06-30 17:16:12 +02:00

34 lines
959 B
Plaintext

include::../description.adoc[]
== Noncompliant Code Example
----
SELECT c.id, c.name, o.id, o.item_id, o.item_quantity
FROM ORDERS o, CUSTOMERS c; -- Noncompliant; no JOIN condition at all
SELECT c.id, c.name, o.id, o.item_id, o.item_quantity
FROM ORDERS o
JOIN CUSTOMERS c ON o.customer_id = o.id; -- Noncompliant; no condition related to CUSTOMERS
SELECT f.name, d.title, l.*
FROM FOLDERS f, DOCUMENTS d, DOC_LINES l -- Noncompliant; missing at least one condition related to DOC_LINES
WHERE f.id = d.folder_id;
----
== Compliant Solution
----
SELECT c.id, c.name, o.id, o.item_id, o.item_quantity
FROM ORDERS o, CUSTOMERS c
WHERE o.customer_id = c.id; -- Compliant
SELECT c.id, c.name, o.id, o.item_id, o.item_quantity
FROM ORDERS o
JOIN CUSTOMERS c ON o.customer_id = c.id; -- Compliant
SELECT f.name, d.title, l.*
FROM FOLDERS f, DOCUMENTS d, DOC_LINES l
WHERE f.id = d.folder_id
AND d.id = l.document_id; -- Compliant
----