
Inline adoc files when they are included exactly once. Also fix language tags because this inlining gives us better information on what language the code is written in.
59 lines
942 B
Plaintext
59 lines
942 B
Plaintext
== Why is this an issue?
|
|
|
|
Oracle supports at most 1000 items in a SQL query's ``++IN++`` clause. When more items are given, the exception ``++ORA-01795 maximum number of expressions in a list is 1000++`` is raised. Thus, ``++IN++`` clauses are not as scalable as joins.
|
|
|
|
|
|
=== Noncompliant code example
|
|
|
|
[source,sql]
|
|
----
|
|
BEGIN
|
|
SELECT *
|
|
INTO result
|
|
FROM my_table
|
|
WHERE col1 IN (1, 2, 3, ..., 1001); -- Noncompliant - raises ORA-01795
|
|
END;
|
|
/
|
|
----
|
|
|
|
|
|
=== Compliant solution
|
|
|
|
[source,sql]
|
|
----
|
|
BEGIN
|
|
SELECT my_table.*
|
|
INTO result
|
|
FROM my_table
|
|
JOIN new_in_table
|
|
WHERE my_table.col1 = new_in_table.value; -- Compliant
|
|
END;
|
|
/
|
|
----
|
|
|
|
ifdef::env-github,rspecator-view[]
|
|
|
|
'''
|
|
== Implementation Specification
|
|
(visible only on this page)
|
|
|
|
=== Message
|
|
|
|
Refactor this query to use a "JOIN" instead.
|
|
|
|
|
|
=== Parameters
|
|
|
|
.maximumNumberOfItems
|
|
****
|
|
|
|
----
|
|
50
|
|
----
|
|
|
|
Maximum number of items allowed
|
|
****
|
|
|
|
|
|
endif::env-github,rspecator-view[]
|