rspec/rules/S5141/plsql/rule.adoc

47 lines
1.1 KiB
Plaintext

== Why is this an issue?
include::../description.adoc[]
=== Noncompliant code example
[source,sql]
----
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
[source,sql]
----
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
----
ifdef::env-github,rspecator-view[]
'''
== Implementation Specification
(visible only on this page)
include::../message.adoc[]
endif::env-github,rspecator-view[]