When Using Bind Variables is not Enough: Dynamic IN Lists

In a previous blog post, I wrote about why you should (almost) always default to using bind variables. There are some exceptions, which I will cover in another follow-up post, but by default, bind variables are the right choice, both from a performance and from a security perspective.

In this article, I will show an example where regrettably, bind variables are not enough, and you can still run into significant performance issues in production. That’s when you create dynamic IN lists.

What’s the problem with dynamic IN lists

Again, this blog post is applicable for most databases, but I’ll use Oracle as an example, only.

An IN predicate that takes a list is a handy abbreviation for an equivalent OR predicate. The following two queries are semantically equivalent:

-- IN predicate
SELECT *
FROM actor
WHERE actor_id IN (1, 2, 3)

-- OR predicate
SELECT *
FROM actor
WHERE actor_id = 1
OR actor_id = 2
OR actor_id = 3

The execution plans are, respectively:

IN list

---------------------------------------------------------
| Id  | Operation                    | Name     | Rows  |
---------------------------------------------------------
|   0 | SELECT STATEMENT             |          |     3 |
|   1 |  INLIST ITERATOR             |          |       |
|   2 |   TABLE ACCESS BY INDEX ROWID| ACTOR    |     3 |
|*  3 |    INDEX UNIQUE SCAN         | PK_ACTOR |     3 |
---------------------------------------------------------
 
Predicate Information (identified by operation id):
---------------------------------------------------
 
   3 - access("ACTOR_ID"=1 OR "ACTOR_ID"=2 OR "ACTOR_ID"=3)

OR predicate

---------------------------------------------------------
| Id  | Operation                    | Name     | Rows  |
---------------------------------------------------------
|   0 | SELECT STATEMENT             |          |     3 |
|   1 |  INLIST ITERATOR             |          |       |
|   2 |   TABLE ACCESS BY INDEX ROWID| ACTOR    |     3 |
|*  3 |    INDEX UNIQUE SCAN         | PK_ACTOR |     3 |
---------------------------------------------------------
 
Predicate Information (identified by operation id):
---------------------------------------------------
 
   3 - access("ACTOR_ID"=1 OR "ACTOR_ID"=2 OR "ACTOR_ID"=3)

We get the exact same plan. And the plan is also optimal. When looking for 3 actors, we’ll run 3 primary key lookups and get a cardinality estimate of 3. Perfect, what could be wrong about this?

Remember execution plan caching

In that previous blog post, we’ve seen the detrimental effects we can get under load when execution plans are no longer cached in the execution plan cache (or in Oracle: cursor cache). But even when we’re using bind variables, we can run into these issues. Consider the following dynamic SQL queries:

SELECT count(*) FROM actor WHERE actor_id IN (?)
SELECT count(*) FROM actor WHERE actor_id IN (?, ?)
SELECT count(*) FROM actor WHERE actor_id IN (?, ?, ?)
SELECT count(*) FROM actor WHERE actor_id IN (?, ?, ?, ?)
SELECT count(*) FROM actor WHERE actor_id IN (?, ?, ?, ?, ?)

Now, let’s generate these SQL queries using dynamic SQL in PL/SQL. PL/SQL is not a very dynamic SQL friendly language as can be seen in the following snippet:

SET SERVEROUTPUT ON
DECLARE
  v_count NUMBER;
  
  FUNCTION binds (n NUMBER) RETURN VARCHAR2 IS
    v_result VARCHAR2(1000);
  BEGIN
    FOR i IN 1..n LOOP
      IF v_result IS NULL THEN
        v_result := ':b' || i;
      ELSE
        v_result := v_result || ', :b' || i;
      END IF;
    END LOOP;
    
    RETURN v_result;
  END binds;
  
  FUNCTION vals (n NUMBER) RETURN VARCHAR2 IS
    v_result VARCHAR2(1000);
  BEGIN
    FOR i IN 1..n LOOP
      IF v_result IS NULL THEN
        v_result := i;
      ELSE
        v_result := v_result || ', ' || i;
      END IF;
    END LOOP;
    
    RETURN v_result;
  END vals;
BEGIN
  FOR i IN 1..5 LOOP
    EXECUTE IMMEDIATE '
      DECLARE 
        v_count NUMBER;
      BEGIN
        EXECUTE IMMEDIATE ''
          SELECT count(*)
          FROM actor
          WHERE actor_id IN (' || binds(i) || ')
        ''
        INTO v_count
        USING ' || vals(i) || ';
        
        :v_count := v_count;
      END;
    '
    USING OUT v_count
    ;
    
    dbms_output.put_line(v_count);
  END LOOP;
END;
/

Running this snippet yields, as expected:

1
2
3
4
5

There are a few noteworthy things to say about the above:

  • The functions BINDS() and VALS() generate strings like :b1, :b2, :b3 and 1, 2, 3. We need these to generate dynamically a list of bind variables for the IN predicates, as well as a list of bind values for the USING clause of the nested EXECUTE IMMEDIATE statement
  • The EXECUTE IMMEDIATE .. USING clause does not take dynamically sized bind value lists, so we have to generate that as well, in a nested EXECUTE IMMEDIATE statement

An appropriate gif at this point when nesting EXECUTE IMMEDIATE like we did is this one:

Or also:

So, now that we got this covered…

… let’s look at execution plans:

SELECT s.sql_id, p.*
FROM v$sql s, TABLE (
  dbms_xplan.display_cursor (
    s.sql_id, s.child_number, 'ALLSTATS LAST'
  )
) p
WHERE lower(s.sql_text) LIKE '%actor_id in %'
AND lower(s.sql_text) NOT LIKE '%v$sql%'
AND lower(s.sql_text) NOT LIKE '%execute_immediate%';

And the result is (some additional formatting applied):

SQL_ID  cwm09k8zqp2at, child number 0
-------------------------------------
SELECT count(*) FROM actor WHERE actor_id IN (:b1)
 
Plan hash value: 1971314150
 
------------------------------------------------
| Id  | Operation          | Name     | E-Rows |
------------------------------------------------
|   0 | SELECT STATEMENT   |          |        |
|   1 |  SORT AGGREGATE    |          |      1 |
|*  2 |   INDEX UNIQUE SCAN| PK_ACTOR |      1 |
------------------------------------------------
 
Predicate Information (identified by operation id):
---------------------------------------------------
 
   2 - access("ACTOR_ID"=:B1)
 
SQL_ID  1wypurx1x0mrp, child number 0
-------------------------------------
SELECT count(*) FROM actor WHERE actor_id IN (:b1, :b2)
 
Plan hash value: 577114894
 
-------------------------------------------------
| Id  | Operation           | Name     | E-Rows |
-------------------------------------------------
|   0 | SELECT STATEMENT    |          |        |
|   1 |  SORT AGGREGATE     |          |      1 |
|   2 |   INLIST ITERATOR   |          |        |
|*  3 |    INDEX UNIQUE SCAN| PK_ACTOR |      2 |
-------------------------------------------------
 
Predicate Information (identified by operation id):
---------------------------------------------------
 
   3 - access(("ACTOR_ID"=:B1 OR "ACTOR_ID"=:B2))

SQL_ID  2y06nwgpxqttn, child number 0
-------------------------------------
SELECT count(*) FROM actor WHERE actor_id IN (:b1, :b2, :b3)
 
Plan hash value: 577114894
 
-------------------------------------------------
| Id  | Operation           | Name     | E-Rows |
-------------------------------------------------
|   0 | SELECT STATEMENT    |          |        |
|   1 |  SORT AGGREGATE     |          |      1 |
|   2 |   INLIST ITERATOR   |          |        |
|*  3 |    INDEX UNIQUE SCAN| PK_ACTOR |      3 |
-------------------------------------------------
 
Predicate Information (identified by operation id):
---------------------------------------------------
 
   3 - access(("ACTOR_ID"=:B1 OR "ACTOR_ID"=:B2 OR "ACTOR_ID"=:B3))

SQL_ID  d4nn8qf9n22yt, child number 0
-------------------------------------
SELECT count(*) FROM actor WHERE actor_id IN (:b1, :b2, :b3, :b4)
 
Plan hash value: 577114894
 
-------------------------------------------------
| Id  | Operation           | Name     | E-Rows |
-------------------------------------------------
|   0 | SELECT STATEMENT    |          |        |
|   1 |  SORT AGGREGATE     |          |      1 |
|   2 |   INLIST ITERATOR   |          |        |
|*  3 |    INDEX UNIQUE SCAN| PK_ACTOR |      4 |
-------------------------------------------------
 
Predicate Information (identified by operation id):
---------------------------------------------------
 
   3 - access(("ACTOR_ID"=:B1 OR "ACTOR_ID"=:B2 OR "ACTOR_ID"=:B3 OR 
              "ACTOR_ID"=:B4))

SQL_ID  4n9b4zgxr5cwj, child number 0
-------------------------------------
SELECT count(*) FROM actor WHERE actor_id IN (:b1, :b2, :b3, :b4, :b5)
 
Plan hash value: 577114894
 
-------------------------------------------------
| Id  | Operation           | Name     | E-Rows |
-------------------------------------------------
|   0 | SELECT STATEMENT    |          |        |
|   1 |  SORT AGGREGATE     |          |      1 |
|   2 |   INLIST ITERATOR   |          |        |
|*  3 |    INDEX UNIQUE SCAN| PK_ACTOR |      5 |
-------------------------------------------------
 
Predicate Information (identified by operation id):
---------------------------------------------------
 
   3 - access(("ACTOR_ID"=:B1 OR "ACTOR_ID"=:B2 OR "ACTOR_ID"=:B3 OR 
              "ACTOR_ID"=:B4 OR "ACTOR_ID"=:B5))

So, again, we’re down to having 5 different SQL_IDs and statements in the execution plan cache / cursor cache, even if they all derive from a single logical statement. Now, in PL/SQL, this is so hard to do, you’re probably not doing it at all.

But if you’re using a query builder (or wrote your own), like JPA’s Criteria Query, or jOOQ, then you will be writing something like this (using jOOQ, because in fact, using the Criteria Query API, dynamic SQL is about as hard to do as in PL/SQL):

for (int i = 1; i <= 5; i++) {
    System.out.println(
        DSL.using(configuration)
           .select(count())
           .from(ACTOR)
           .where(ACTOR.ACTOR_ID.in(
                IntStream.rangeClosed(1, i)
                         .boxed()
                         .collect(toList())
           )
           .fetchOne(count())
    );
}

So this query will generate the same queries as the PL/SQL code, and this really wasn’t that hard. Perhaps, in this particular case, it’s not that much of a good thing that this isn’t so hard to do!

Let’s benchmark this, again

There are different ways to benchmark this problem. One mistake we could make here is to just benchmark small IN lists with large ones, but that’s not fair. If you have to send a large IN list to the server, you cannot easily change that.

Another option is to benchmark alternative approaches of generating those IN lists

  • The default way is to have a list of exactly size N
  • An alternative way would be to pad the list to a size M where M = 2 ^ X such that M(X) >= N and M(X - 1) < N

The latter approach would, instead of generating the original queries:

SELECT count(*) FROM actor WHERE actor_id IN (?)
SELECT count(*) FROM actor WHERE actor_id IN (?, ?)
SELECT count(*) FROM actor WHERE actor_id IN (?, ?, ?)
SELECT count(*) FROM actor WHERE actor_id IN (?, ?, ?, ?)
SELECT count(*) FROM actor WHERE actor_id IN (?, ?, ?, ?, ?)

… generate these ones:

SELECT count(*) FROM actor WHERE actor_id IN (?)
SELECT count(*) FROM actor WHERE actor_id IN (?, ?)
SELECT count(*) FROM actor WHERE actor_id IN (?, ?, ?, ?)
SELECT count(*) FROM actor WHERE actor_id IN (?, ?, ?, ?)
SELECT count(*) FROM actor WHERE actor_id IN (?, ?, ?, ?, ?, ?, ?, ?)

Where the last bind variable is always repeated (padded) until the list is filled up to a length that is a power of 2 (and in Oracle, of course, we’d split lists longer than 1000 items into several lists).

This padding is what jOOQ already offers:
https://www.jooq.org/doc/latest/manual/sql-building/dsl-context/custom-settings/settings-in-list-padding/

And maybe, a future Hibernate will offer it too, after I’ve suggested the feature to Vlad Mihalcea from the Hibernate team:
https://hibernate.atlassian.net/browse/HHH-12469

Here’s the benchmark logic. It’s a bit more complex than previously:

SET SERVEROUTPUT ON

ALTER SYSTEM FLUSH SHARED_POOL;
ALTER SYSTEM FLUSH BUFFER_CACHE;

CREATE TABLE results (
  run     NUMBER(2),
  stmt    NUMBER(2),
  elapsed NUMBER
);

DECLARE
  v_ts TIMESTAMP WITH TIME ZONE;
  v_repeat CONSTANT NUMBER := 20000;
  v_first_name actor.first_name%TYPE;
  v_last_name  actor.last_name%TYPE;
  
  FUNCTION binds (n NUMBER, pad BOOLEAN) RETURN VARCHAR2 IS
    v_result VARCHAR2(32767);
    v_n_pad  NUMBER(10) := power(2, ceil(ln(n)/ln(2)));
  BEGIN
    FOR i IN 1..n LOOP
      IF v_result IS NULL THEN
        v_result := ':b' || i;
      ELSIF mod(i, 1000) = 0 THEN
        v_result := v_result || ') OR actor_id IN (:b' || i;
      ELSE
        v_result := v_result || ', :b' || i;
      END IF;
    END LOOP;
    
    IF pad THEN
      FOR i IN n + 1 .. v_n_pad LOOP
        IF mod(i, 1000) = 0 THEN
          v_result := v_result || ') OR actor_id IN (:b' || i;
        ELSE
          v_result := v_result || ', :b' || i;
        END IF;
      END LOOP;
    END IF;
    
    RETURN v_result;
  END binds;
  
  FUNCTION vals (n NUMBER, pad BOOLEAN) RETURN VARCHAR2 IS
    v_result VARCHAR2(32767);
    v_n_pad  NUMBER(10) := power(2, ceil(ln(n)/ln(2)));
  BEGIN
    FOR i IN 1..n LOOP
      IF v_result IS NULL THEN
        v_result := i;
      ELSE
        v_result := v_result || ', ' || i;
      END IF;
    END LOOP;
    
    IF pad THEN
      FOR i IN n + 1 .. v_n_pad LOOP
        v_result := v_result || ', ' || n;
      END LOOP;
    END IF;
    
    RETURN v_result;
  END vals;
  
  PROCEDURE run(i NUMBER, pad BOOLEAN) IS
  BEGIN
    EXECUTE IMMEDIATE '
      DECLARE 
        v_count NUMBER;
      BEGIN
        EXECUTE IMMEDIATE ''
          SELECT count(*)
          FROM actor
          WHERE actor_id IN (' || binds(i, pad) || ')
        ''
        INTO v_count
        USING ' || vals(i, pad) || ';
      END;
    ';
  END run;
BEGIN

  -- Repeat the whole benchmark several times to avoid warmup penalty
  FOR r IN 1..5 LOOP
    v_ts := SYSTIMESTAMP;
      
    FOR i IN 1..v_repeat LOOP
      run(mod(i, 100) + 1, FALSE);
    END LOOP;
  
    INSERT INTO results VALUES (r, 1, 
      SYSDATE + ((SYSTIMESTAMP - v_ts) * 86400) - SYSDATE);
    v_ts := SYSTIMESTAMP;
      
    FOR i IN 1..v_repeat LOOP
      run(mod(i, 100) + 1, TRUE);
    END LOOP;
  
    INSERT INTO results VALUES (r, 2, 
      SYSDATE + ((SYSTIMESTAMP - v_ts) * 86400) - SYSDATE);
  END LOOP;
  
  FOR rec IN (
    SELECT 
      run, stmt, 
      CAST(elapsed / MIN(elapsed) OVER() AS NUMBER(10, 5)) ratio 
    FROM results
  )
  LOOP
    dbms_output.put_line('Run ' || rec.run || 
      ', Statement ' || rec.stmt || 
      ' : ' || rec.ratio);
  END LOOP;
END;
/

DROP TABLE results;

Bear in mind the following:

  • We run the benchmark 5 times
  • In each run, we run 20000 queries with each technique
  • Those 20000 queries have between 1 and 100 elements in the IN list

The results show that both approaches fare equally well:

Run 1, Statement 1 : 1.16944
Run 1, Statement 2 : 1.11204
Run 2, Statement 1 : 1.06086
Run 2, Statement 2 : 1.03591
Run 3, Statement 1 : 1.03589
Run 3, Statement 2 : 1.03605
Run 4, Statement 1 : 1.33935
Run 4, Statement 2 : 1.2822
Run 5, Statement 1 : 1
Run 5, Statement 2 : 1.04648

This means that there is no significant overhead caused by the padding in this benchmark. That’s good news.

Running the following query shows the number of executions per statement:

SELECT executions, regexp_count(sql_text, ':'), sql_text
FROM v$sql
WHERE lower(sql_text) LIKE '%actor_id in %'
AND lower(sql_text) NOT LIKE '%v$sql%'
AND lower(sql_text) NOT LIKE '%execute_immediate%'
ORDER BY sql_text;

The result being:

EXECS   BINDS   SQL_TEXT
2000	1       SELECT count(*) FROM actor WHERE actor_id IN (:b1)         
2000	2       SELECT count(*) FROM actor WHERE actor_id IN (:b1, :b2)         
1000	3       SELECT count(*) FROM actor WHERE actor_id IN (:b1, :b2, :b3)         
3000	4       ...
1000	5       ...
1000	6       ...
1000	7       ...
5000	8       ...
1000	9       ...
1000	10      ...
1000	11      ...
1000	12      ...
1000	13	...
1000	14	...
1000	15	...
9000	16	...
...
1000	100	...
36000	128	...

The version that creates exactly sized IN lists is always executed 1000 times. The version that has padded IN lists sized to the next power of 2 (M = 2 ^ X) is executed 1000 * X times (plus another 1000 times because there’s also an IN list of that exact size)

At the end, there are some “lone” 128-element sized IN lists. This is expected. The number of different SQL statements is:

  • 100 for the exactly sized IN lists
  • 7 for the padded IN lists (128 = 2 ^ 7)

So, thus far, we haven’t gained anything, but also not lost much.

What if the lists get longer

The real problem isn’t the individual query execution time, which is fine in both cases, but the effect that dynamic IN lists have on a system. Let’s generate IN lists of up to size 4096, and bearing in mind that Oracle won’t allow this, the lists will be of the form:

SELECT count(*)
FROM actor
WHERE actor_id IN (:b1, :b2, ..., :b1000)
OR actor_id IN (:b1001, :b1002, ..., :b2000)
OR actor_id IN (:b2001, ...)

Now, with a maximum size of 4096, there are quite a few distinct statements that need to be parsed. As opposed to only 12 when we use the padded in lists. The padded size grows logarithmically, so we’ll never really run into this same problem again, at least not for a single IN list.

How does the comparison fare in another benchmark? We must be careful not to overdo things. Running 2x 20000 queries with variable sized IN lists can easily run for more than an hour on Oracle. Perhaps, it’s Oracle’s way of punishing you for doing something you shouldn’t: Having super-long IN lists. I’ve played around with different sets of parameters to the benchmark and the clear message here is that having long bind variable lists creates a bottleneck per se (i.e. the binding of the variables takes time), so the difference in parse times isn’t as drastic as it was before, for individual query executions. The overall improvement is this:

Run 1, Statement 1 : 1.42696
Run 1, Statement 2 : 1

So, we get around a 1.5x increase of performance when repeating the bind values. Yet still, the fact that we have far less cached execution plans does matter, especially when we start exhausting the cursor cache, because with this approach, at least this exhaustion is not going to happen.

Alternative options

The above shows that if you really cannot get around an IN list, a simple, viable workaround is to pad the lists. But often, you can get around them. In databases like Oracle and PostgreSQL, that offer array types, you can consider using those once your lists start growing. I’ve blogged about this in a previous blog post:
https://blog.jooq.org/2017/03/30/sql-in-predicate-with-in-list-or-with-array-which-is-faster

If your lists become huge, a bulk/batch inserting the IDs into a temporary table might be a far better option, and then semi-join that one instead:

SELECT count(*)
FROM actor
WHERE actor_id IN (
  SELECT id FROM temp_table
)

And ideally, if your list is really not dynamic, but originates from some other table, then please, stop passing around IDs and semi-join the original query that produced the IDs in the first place:

SELECT count(*)
FROM actor
WHERE actor_id IN (
  SELECT id FROM other_table WHERE ...
)

That last option should always be your first choice as it will very likely outperform all the others.

7 thoughts on “When Using Bind Variables is not Enough: Dynamic IN Lists

  1. Some other cons.
    Problem with skewed columns, bind peek done on parse phase only (diff ways to workaround).
    Slightly more involved to get query and values while looking at dynamic views.
    From dev side, and that is the big problem, writing raw SQL without binds is much easier and follows naturally.
    Some values should be hardcoded, dev should know to chose.
    Not all rdbms do big difference from perf side, which can be the problem when switching db type and have larger codebase.
    Likely you wrote already about that stuff, sorry if I jumped the gun here :)

  2. Normally, I’ll dynamically generate a huge UNION sub query to solve large IN parameter
    (Oracle)
    WHERE column IN (
    SELECT ‘1’ FROM DUAL
    UNION ALL
    SELECT ‘2’ FROM DUAL
    UNION ALL
    SELECT ‘3’ FROM DUAL
    UNION ALL



    UNION ALL
    SELECT ‘1001’ FROM DUAL
    )

    1. Did you benchmark this? I doubt it works better than splitting the IN list with an OR predicate as illustrated in the article (but haven’t measured yet)…

      1. OK, benchmarked it now. Code here: .gist table { margin-bottom: 0; } — Copyright Data Geekery GmbH — — Licensed under the Apache License, Version 2.0 (the "License"); — you may not use this file except in compliance with the License. — You may obtain a copy of the License at — — http://www.apache.org/licenses/LICENSE-2.0 — — Unless required by applicable law or agreed to in writing, software — distributed under the License is distributed on an "AS IS" BASIS, — WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. — See the License for the specific language governing permissions and — limitations under the License. — — This version displays actual execution times. — Beware that according to Oracle licensing, it is not allowed to publish benchmark results SET SERVEROUTPUT ON ALTER SYSTEM FLUSH SHARED_POOL; ALTER SYSTEM FLUSH BUFFER_CACHE; DECLARE v_ts TIMESTAMP WITH TIME ZONE; v_repeat CONSTANT NUMBER := 100; BEGIN — Repeat the whole benchmark several times to avoid warmup penalty FOR r IN 1..5 LOOP v_ts := SYSTIMESTAMP; FOR i IN 1..v_repeat LOOP FOR rec IN ( SELECT * FROM actor WHERE actor_id IN ( 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, 847, 848, 849, 850, 851, 852, 853, 854, 855, 856, 857, 858, 859, 860, 861, 862, 863, 864, 865, 866, 867, 868, 869, 870, 871, 872, 873, 874, 875, 876, 877, 878, 879, 880, 881, 882, 883, 884, 885, 886, 887, 888, 889, 890, 891, 892, 893, 894, 895, 896, 897, 898, 899, 900, 901, 902, 903, 904, 905, 906, 907, 908, 909, 910, 911, 912, 913, 914, 915, 916, 917, 918, 919, 920, 921, 922, 923, 924, 925, 926, 927, 928, 929, 930, 931, 932, 933, 934, 935, 936, 937, 938, 939, 940, 941, 942, 943, 944, 945, 946, 947, 948, 949, 950, 951, 952, 953, 954, 955, 956, 957, 958, 959, 960, 961, 962, 963, 964, 965, 966, 967, 968, 969, 970, 971, 972, 973, 974, 975, 976, 977, 978, 979, 980, 981, 982, 983, 984, 985, 986, 987, 988, 989, 990, 991, 992, 993, 994, 995, 996, 997, 998, 999, 1000 ) OR actor_id IN ( 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1120, 1121, 1122, 1123, 1124, 1125, 1126, 1127, 1128, 1129, 1130, 1131, 1132, 1133, 1134, 1135, 1136, 1137, 1138, 1139, 1140, 1141, 1142, 1143, 1144, 1145, 1146, 1147, 1148, 1149, 1150, 1151, 1152, 1153, 1154, 1155, 1156, 1157, 1158, 1159, 1160, 1161, 1162, 1163, 1164, 1165, 1166, 1167, 1168, 1169, 1170, 1171, 1172, 1173, 1174, 1175, 1176, 1177, 1178, 1179, 1180, 1181, 1182, 1183, 1184, 1185, 1186, 1187, 1188, 1189, 1190, 1191, 1192, 1193, 1194, 1195, 1196, 1197, 1198, 1199, 1201, 1202, 1203, 1204, 1205, 1206, 1207, 1208, 1209, 1210, 1211, 1212, 1213, 1214, 1215, 1216, 1217, 1218, 1219, 1220, 1221, 1222, 1223, 1224, 1225, 1226, 1227, 1228, 1229, 1230, 1231, 1232, 1233, 1234, 1235, 1236, 1237, 1238, 1239, 1240, 1241, 1242, 1243, 1244, 1245, 1246, 1247, 1248, 1249, 1250, 1251, 1252, 1253, 1254, 1255, 1256, 1257, 1258, 1259, 1260, 1261, 1262, 1263, 1264, 1265, 1266, 1267, 1268, 1269, 1270, 1271, 1272, 1273, 1274, 1275, 1276, 1277, 1278, 1279, 1280, 1281, 1282, 1283, 1284, 1285, 1286, 1287, 1288, 1289, 1290, 1291, 1292, 1293, 1294, 1295, 1296, 1297, 1298, 1299, 1301, 1302, 1303, 1304, 1305, 1306, 1307, 1308, 1309, 1310, 1311, 1312, 1313, 1314, 1315, 1316, 1317, 1318, 1319, 1320, 1321, 1322, 1323, 1324, 1325, 1326, 1327, 1328, 1329, 1330, 1331, 1332, 1333, 1334, 1335, 1336, 1337, 1338, 1339, 1340, 1341, 1342, 1343, 1344, 1345, 1346, 1347, 1348, 1349, 1350, 1351, 1352, 1353, 1354, 1355, 1356, 1357, 1358, 1359, 1360, 1361, 1362, 1363, 1364, 1365, 1366, 1367, 1368, 1369, 1370, 1371, 1372, 1373, 1374, 1375, 1376, 1377, 1378, 1379, 1380, 1381, 1382, 1383, 1384, 1385, 1386, 1387, 1388, 1389, 1390, 1391, 1392, 1393, 1394, 1395, 1396, 1397, 1398, 1399, 1401, 1402, 1403, 1404, 1405, 1406, 1407, 1408, 1409, 1410, 1411, 1412, 1413, 1414, 1415, 1416, 1417, 1418, 1419, 1420, 1421, 1422, 1423, 1424, 1425, 1426, 1427, 1428, 1429, 1430, 1431, 1432, 1433, 1434, 1435, 1436, 1437, 1438, 1439, 1440, 1441, 1442, 1443, 1444, 1445, 1446, 1447, 1448, 1449, 1450, 1451, 1452, 1453, 1454, 1455, 1456, 1457, 1458, 1459, 1460, 1461, 1462, 1463, 1464, 1465, 1466, 1467, 1468, 1469, 1470, 1471, 1472, 1473, 1474, 1475, 1476, 1477, 1478, 1479, 1480, 1481, 1482, 1483, 1484, 1485, 1486, 1487, 1488, 1489, 1490, 1491, 1492, 1493, 1494, 1495, 1496, 1497, 1498, 1499, 1501, 1502, 1503, 1504, 1505, 1506, 1507, 1508, 1509, 1510, 1511, 1512, 1513, 1514, 1515, 1516, 1517, 1518, 1519, 1520, 1521, 1522, 1523, 1524, 1525, 1526, 1527, 1528, 1529, 1530, 1531, 1532, 1533, 1534, 1535, 1536, 1537, 1538, 1539, 1540, 1541, 1542, 1543, 1544, 1545, 1546, 1547, 1548, 1549, 1550, 1551, 1552, 1553, 1554, 1555, 1556, 1557, 1558, 1559, 1560, 1561, 1562, 1563, 1564, 1565, 1566, 1567, 1568, 1569, 1570, 1571, 1572, 1573, 1574, 1575, 1576, 1577, 1578, 1579, 1580, 1581, 1582, 1583, 1584, 1585, 1586, 1587, 1588, 1589, 1590, 1591, 1592, 1593, 1594, 1595, 1596, 1597, 1598, 1599, 1601, 1602, 1603, 1604, 1605, 1606, 1607, 1608, 1609, 1610, 1611, 1612, 1613, 1614, 1615, 1616, 1617, 1618, 1619, 1620, 1621, 1622, 1623, 1624, 1625, 1626, 1627, 1628, 1629, 1630, 1631, 1632, 1633, 1634, 1635, 1636, 1637, 1638, 1639, 1640, 1641, 1642, 1643, 1644, 1645, 1646, 1647, 1648, 1649, 1650, 1651, 1652, 1653, 1654, 1655, 1656, 1657, 1658, 1659, 1660, 1661, 1662, 1663, 1664, 1665, 1666, 1667, 1668, 1669, 1670, 1671, 1672, 1673, 1674, 1675, 1676, 1677, 1678, 1679, 1680, 1681, 1682, 1683, 1684, 1685, 1686, 1687, 1688, 1689, 1690, 1691, 1692, 1693, 1694, 1695, 1696, 1697, 1698, 1699, 1701, 1702, 1703, 1704, 1705, 1706, 1707, 1708, 1709, 1710, 1711, 1712, 1713, 1714, 1715, 1716, 1717, 1718, 1719, 1720, 1721, 1722, 1723, 1724, 1725, 1726, 1727, 1728, 1729, 1730, 1731, 1732, 1733, 1734, 1735, 1736, 1737, 1738, 1739, 1740, 1741, 1742, 1743, 1744, 1745, 1746, 1747, 1748, 1749, 1750, 1751, 1752, 1753, 1754, 1755, 1756, 1757, 1758, 1759, 1760, 1761, 1762, 1763, 1764, 1765, 1766, 1767, 1768, 1769, 1770, 1771, 1772, 1773, 1774, 1775, 1776, 1777, 1778, 1779, 1780, 1781, 1782, 1783, 1784, 1785, 1786, 1787, 1788, 1789, 1790, 1791, 1792, 1793, 1794, 1795, 1796, 1797, 1798, 1799, 1801, 1802, 1803, 1804, 1805, 1806, 1807, 1808, 1809, 1810, 1811, 1812, 1813, 1814, 1815, 1816, 1817, 1818, 1819, 1820, 1821, 1822, 1823, 1824, 1825, 1826, 1827, 1828, 1829, 1830, 1831, 1832, 1833, 1834, 1835, 1836, 1837, 1838, 1839, 1840, 1841, 1842, 1843, 1844, 1845, 1846, 1847, 1848, 1849, 1850, 1851, 1852, 1853, 1854, 1855, 1856, 1857, 1858, 1859, 1860, 1861, 1862, 1863, 1864, 1865, 1866, 1867, 1868, 1869, 1870, 1871, 1872, 1873, 1874, 1875, 1876, 1877, 1878, 1879, 1880, 1881, 1882, 1883, 1884, 1885, 1886, 1887, 1888, 1889, 1890, 1891, 1892, 1893, 1894, 1895, 1896, 1897, 1898, 1899, 1901, 1902, 1903, 1904, 1905, 1906, 1907, 1908, 1909, 1910, 1911, 1912, 1913, 1914, 1915, 1916, 1917, 1918, 1919, 1920, 1921, 1922, 1923, 1924, 1925, 1926, 1927, 1928, 1929, 1930, 1931, 1932, 1933, 1934, 1935, 1936, 1937, 1938, 1939, 1940, 1941, 1942, 1943, 1944, 1945, 1946, 1947, 1948, 1949, 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999 ) ) LOOP NULL; END LOOP; END LOOP; dbms_output.put_line('Run ' || r ||', Statement 1 : ' || (SYSTIMESTAMP – v_ts)); v_ts := SYSTIMESTAMP; FOR i IN 1..v_repeat LOOP FOR rec IN ( SELECT * FROM actor WHERE actor_id IN ( SELECT 1 FROM dual UNION ALL SELECT 2 FROM dual UNION ALL SELECT 3 FROM dual UNION ALL SELECT 4 FROM dual UNION ALL SELECT 5 FROM dual UNION ALL SELECT 6 FROM dual UNION ALL SELECT 7 FROM dual UNION ALL SELECT 8 FROM dual UNION ALL SELECT 9 FROM dual UNION ALL SELECT 10 FROM dual UNION ALL SELECT 11 FROM dual UNION ALL SELECT 12 FROM dual UNION ALL SELECT 13 FROM dual UNION ALL SELECT 14 FROM dual UNION ALL SELECT 15 FROM dual UNION ALL SELECT 16 FROM dual UNION ALL SELECT 17 FROM dual UNION ALL SELECT 18 FROM dual UNION ALL SELECT 19 FROM dual UNION ALL SELECT 20 FROM dual UNION ALL SELECT 21 FROM dual UNION ALL SELECT 22 FROM dual UNION ALL SELECT 23 FROM dual UNION ALL SELECT 24 FROM dual UNION ALL SELECT 25 FROM dual UNION ALL SELECT 26 FROM dual UNION ALL SELECT 27 FROM dual UNION ALL SELECT 28 FROM dual UNION ALL SELECT 29 FROM dual UNION ALL SELECT 30 FROM dual UNION ALL SELECT 31 FROM dual UNION ALL SELECT 32 FROM dual UNION ALL SELECT 33 FROM dual UNION ALL SELECT 34 FROM dual UNION ALL SELECT 35 FROM dual UNION ALL SELECT 36 FROM dual UNION ALL SELECT 37 FROM dual UNION ALL SELECT 38 FROM dual UNION ALL SELECT 39 FROM dual UNION ALL SELECT 40 FROM dual UNION ALL SELECT 41 FROM dual UNION ALL SELECT 42 FROM dual UNION ALL SELECT 43 FROM dual UNION ALL SELECT 44 FROM dual UNION ALL SELECT 45 FROM dual UNION ALL SELECT 46 FROM dual UNION ALL SELECT 47 FROM dual UNION ALL SELECT 48 FROM dual UNION ALL SELECT 49 FROM dual UNION ALL SELECT 50 FROM dual UNION ALL SELECT 51 FROM dual UNION ALL SELECT 52 FROM dual UNION ALL SELECT 53 FROM dual UNION ALL SELECT 54 FROM dual UNION ALL SELECT 55 FROM dual UNION ALL SELECT 56 FROM dual UNION ALL SELECT 57 FROM dual UNION ALL SELECT 58 FROM dual UNION ALL SELECT 59 FROM dual UNION ALL SELECT 60 FROM dual UNION ALL SELECT 61 FROM dual UNION ALL SELECT 62 FROM dual UNION ALL SELECT 63 FROM dual UNION ALL SELECT 64 FROM dual UNION ALL SELECT 65 FROM dual UNION ALL SELECT 66 FROM dual UNION ALL SELECT 67 FROM dual UNION ALL SELECT 68 FROM dual UNION ALL SELECT 69 FROM dual UNION ALL SELECT 70 FROM dual UNION ALL SELECT 71 FROM dual UNION ALL SELECT 72 FROM dual UNION ALL SELECT 73 FROM dual UNION ALL SELECT 74 FROM dual UNION ALL SELECT 75 FROM dual UNION ALL SELECT 76 FROM dual UNION ALL SELECT 77 FROM dual UNION ALL SELECT 78 FROM dual UNION ALL SELECT 79 FROM dual UNION ALL SELECT 80 FROM dual UNION ALL SELECT 81 FROM dual UNION ALL SELECT 82 FROM dual UNION ALL SELECT 83 FROM dual UNION ALL SELECT 84 FROM dual UNION ALL SELECT 85 FROM dual UNION ALL SELECT 86 FROM dual UNION ALL SELECT 87 FROM dual UNION ALL SELECT 88 FROM dual UNION ALL SELECT 89 FROM dual UNION ALL SELECT 90 FROM dual UNION ALL SELECT 91 FROM dual UNION ALL SELECT 92 FROM dual UNION ALL SELECT 93 FROM dual UNION ALL SELECT 94 FROM dual UNION ALL SELECT 95 FROM dual UNION ALL SELECT 96 FROM dual UNION ALL SELECT 97 FROM dual UNION ALL SELECT 98 FROM dual UNION ALL SELECT 99 FROM dual UNION ALL SELECT 100 FROM dual UNION ALL SELECT 101 FROM dual UNION ALL SELECT 102 FROM dual UNION ALL SELECT 103 FROM dual UNION ALL SELECT 104 FROM dual UNION ALL SELECT 105 FROM dual UNION ALL SELECT 106 FROM dual UNION ALL SELECT 107 FROM dual UNION ALL SELECT 108 FROM dual UNION ALL SELECT 109 FROM dual UNION ALL SELECT 110 FROM dual UNION ALL SELECT 111 FROM dual UNION ALL SELECT 112 FROM dual UNION ALL SELECT 113 FROM dual UNION ALL SELECT 114 FROM dual UNION ALL SELECT 115 FROM dual UNION ALL SELECT 116 FROM dual UNION ALL SELECT 117 FROM dual UNION ALL SELECT 118 FROM dual UNION ALL SELECT 119 FROM dual UNION ALL SELECT 120 FROM dual UNION ALL SELECT 121 FROM dual UNION ALL SELECT 122 FROM dual UNION ALL SELECT 123 FROM dual UNION ALL SELECT 124 FROM dual UNION ALL SELECT 125 FROM dual UNION ALL SELECT 126 FROM dual UNION ALL SELECT 127 FROM dual UNION ALL SELECT 128 FROM dual UNION ALL SELECT 129 FROM dual UNION ALL SELECT 130 FROM dual UNION ALL SELECT 131 FROM dual UNION ALL SELECT 132 FROM dual UNION ALL SELECT 133 FROM dual UNION ALL SELECT 134 FROM dual UNION ALL SELECT 135 FROM dual UNION ALL SELECT 136 FROM dual UNION ALL SELECT 137 FROM dual UNION ALL SELECT 138 FROM dual UNION ALL SELECT 139 FROM dual UNION ALL SELECT 140 FROM dual UNION ALL SELECT 141 FROM dual UNION ALL SELECT 142 FROM dual UNION ALL SELECT 143 FROM dual UNION ALL SELECT 144 FROM dual UNION ALL SELECT 145 FROM dual UNION ALL SELECT 146 FROM dual UNION ALL SELECT 147 FROM dual UNION ALL SELECT 148 FROM dual UNION ALL SELECT 149 FROM dual UNION ALL SELECT 150 FROM dual UNION ALL SELECT 151 FROM dual UNION ALL SELECT 152 FROM dual UNION ALL SELECT 153 FROM dual UNION ALL SELECT 154 FROM dual UNION ALL SELECT 155 FROM dual UNION ALL SELECT 156 FROM dual UNION ALL SELECT 157 FROM dual UNION ALL SELECT 158 FROM dual UNION ALL SELECT 159 FROM dual UNION ALL SELECT 160 FROM dual UNION ALL SELECT 161 FROM dual UNION ALL SELECT 162 FROM dual UNION ALL SELECT 163 FROM dual UNION ALL SELECT 164 FROM dual UNION ALL SELECT 165 FROM dual UNION ALL SELECT 166 FROM dual UNION ALL SELECT 167 FROM dual UNION ALL SELECT 168 FROM dual UNION ALL SELECT 169 FROM dual UNION ALL SELECT 170 FROM dual UNION ALL SELECT 171 FROM dual UNION ALL SELECT 172 FROM dual UNION ALL SELECT 173 FROM dual UNION ALL SELECT 174 FROM dual UNION ALL SELECT 175 FROM dual UNION ALL SELECT 176 FROM dual UNION ALL SELECT 177 FROM dual UNION ALL SELECT 178 FROM dual UNION ALL SELECT 179 FROM dual UNION ALL SELECT 180 FROM dual UNION ALL SELECT 181 FROM dual UNION ALL SELECT 182 FROM dual UNION ALL SELECT 183 FROM dual UNION ALL SELECT 184 FROM dual UNION ALL SELECT 185 FROM dual UNION ALL SELECT 186 FROM dual UNION ALL SELECT 187 FROM dual UNION ALL SELECT 188 FROM dual UNION ALL SELECT 189 FROM dual UNION ALL SELECT 190 FROM dual UNION ALL SELECT 191 FROM dual UNION ALL SELECT 192 FROM dual UNION ALL SELECT 193 FROM dual UNION ALL SELECT 194 FROM dual UNION ALL SELECT 195 FROM dual UNION ALL SELECT 196 FROM dual UNION ALL SELECT 197 FROM dual UNION ALL SELECT 198 FROM dual UNION ALL SELECT 199 FROM dual UNION ALL SELECT 200 FROM dual UNION ALL SELECT 201 FROM dual UNION ALL SELECT 202 FROM dual UNION ALL SELECT 203 FROM dual UNION ALL SELECT 204 FROM dual UNION ALL SELECT 205 FROM dual UNION ALL SELECT 206 FROM dual UNION ALL SELECT 207 FROM dual UNION ALL SELECT 208 FROM dual UNION ALL SELECT 209 FROM dual UNION ALL SELECT 210 FROM dual UNION ALL SELECT 211 FROM dual UNION ALL SELECT 212 FROM dual UNION ALL SELECT 213 FROM dual UNION ALL SELECT 214 FROM dual UNION ALL SELECT 215 FROM dual UNION ALL SELECT 216 FROM dual UNION ALL SELECT 217 FROM dual UNION ALL SELECT 218 FROM dual UNION ALL SELECT 219 FROM dual UNION ALL SELECT 220 FROM dual UNION ALL SELECT 221 FROM dual UNION ALL SELECT 222 FROM dual UNION ALL SELECT 223 FROM dual UNION ALL SELECT 224 FROM dual UNION ALL SELECT 225 FROM dual UNION ALL SELECT 226 FROM dual UNION ALL SELECT 227 FROM dual UNION ALL SELECT 228 FROM dual UNION ALL SELECT 229 FROM dual UNION ALL SELECT 230 FROM dual UNION ALL SELECT 231 FROM dual UNION ALL SELECT 232 FROM dual UNION ALL SELECT 233 FROM dual UNION ALL SELECT 234 FROM dual UNION ALL SELECT 235 FROM dual UNION ALL SELECT 236 FROM dual UNION ALL SELECT 237 FROM dual UNION ALL SELECT 238 FROM dual UNION ALL SELECT 239 FROM dual UNION ALL SELECT 240 FROM dual UNION ALL SELECT 241 FROM dual UNION ALL SELECT 242 FROM dual UNION ALL SELECT 243 FROM dual UNION ALL SELECT 244 FROM dual UNION ALL SELECT 245 FROM dual UNION ALL SELECT 246 FROM dual UNION ALL SELECT 247 FROM dual UNION ALL SELECT 248 FROM dual UNION ALL SELECT 249 FROM dual UNION ALL SELECT 250 FROM dual UNION ALL SELECT 251 FROM dual UNION ALL SELECT 252 FROM dual UNION ALL SELECT 253 FROM dual UNION ALL SELECT 254 FROM dual UNION ALL SELECT 255 FROM dual UNION ALL SELECT 256 FROM dual UNION ALL SELECT 257 FROM dual UNION ALL SELECT 258 FROM dual UNION ALL SELECT 259 FROM dual UNION ALL SELECT 260 FROM dual UNION ALL SELECT 261 FROM dual UNION ALL SELECT 262 FROM dual UNION ALL SELECT 263 FROM dual UNION ALL SELECT 264 FROM dual UNION ALL SELECT 265 FROM dual UNION ALL SELECT 266 FROM dual UNION ALL SELECT 267 FROM dual UNION ALL SELECT 268 FROM dual UNION ALL SELECT 269 FROM dual UNION ALL SELECT 270 FROM dual UNION ALL SELECT 271 FROM dual UNION ALL SELECT 272 FROM dual UNION ALL SELECT 273 FROM dual UNION ALL SELECT 274 FROM dual UNION ALL SELECT 275 FROM dual UNION ALL SELECT 276 FROM dual UNION ALL SELECT 277 FROM dual UNION ALL SELECT 278 FROM dual UNION ALL SELECT 279 FROM dual UNION ALL SELECT 280 FROM dual UNION ALL SELECT 281 FROM dual UNION ALL SELECT 282 FROM dual UNION ALL SELECT 283 FROM dual UNION ALL SELECT 284 FROM dual UNION ALL SELECT 285 FROM dual UNION ALL SELECT 286 FROM dual UNION ALL SELECT 287 FROM dual UNION ALL SELECT 288 FROM dual UNION ALL SELECT 289 FROM dual UNION ALL SELECT 290 FROM dual UNION ALL SELECT 291 FROM dual UNION ALL SELECT 292 FROM dual UNION ALL SELECT 293 FROM dual UNION ALL SELECT 294 FROM dual UNION ALL SELECT 295 FROM dual UNION ALL SELECT 296 FROM dual UNION ALL SELECT 297 FROM dual UNION ALL SELECT 298 FROM dual UNION ALL SELECT 299 FROM dual UNION ALL SELECT 300 FROM dual UNION ALL SELECT 301 FROM dual UNION ALL SELECT 302 FROM dual UNION ALL SELECT 303 FROM dual UNION ALL SELECT 304 FROM dual UNION ALL SELECT 305 FROM dual UNION ALL SELECT 306 FROM dual UNION ALL SELECT 307 FROM dual UNION ALL SELECT 308 FROM dual UNION ALL SELECT 309 FROM dual UNION ALL SELECT 310 FROM dual UNION ALL SELECT 311 FROM dual UNION ALL SELECT 312 FROM dual UNION ALL SELECT 313 FROM dual UNION ALL SELECT 314 FROM dual UNION ALL SELECT 315 FROM dual UNION ALL SELECT 316 FROM dual UNION ALL SELECT 317 FROM dual UNION ALL SELECT 318 FROM dual UNION ALL SELECT 319 FROM dual UNION ALL SELECT 320 FROM dual UNION ALL SELECT 321 FROM dual UNION ALL SELECT 322 FROM dual UNION ALL SELECT 323 FROM dual UNION ALL SELECT 324 FROM dual UNION ALL SELECT 325 FROM dual UNION ALL SELECT 326 FROM dual UNION ALL SELECT 327 FROM dual UNION ALL SELECT 328 FROM dual UNION ALL SELECT 329 FROM dual UNION ALL SELECT 330 FROM dual UNION ALL SELECT 331 FROM dual UNION ALL SELECT 332 FROM dual UNION ALL SELECT 333 FROM dual UNION ALL SELECT 334 FROM dual UNION ALL SELECT 335 FROM dual UNION ALL SELECT 336 FROM dual UNION ALL SELECT 337 FROM dual UNION ALL SELECT 338 FROM dual UNION ALL SELECT 339 FROM dual UNION ALL SELECT 340 FROM dual UNION ALL SELECT 341 FROM dual UNION ALL SELECT 342 FROM dual UNION ALL SELECT 343 FROM dual UNION ALL SELECT 344 FROM dual UNION ALL SELECT 345 FROM dual UNION ALL SELECT 346 FROM dual UNION ALL SELECT 347 FROM dual UNION ALL SELECT 348 FROM dual UNION ALL SELECT 349 FROM dual UNION ALL SELECT 350 FROM dual UNION ALL SELECT 351 FROM dual UNION ALL SELECT 352 FROM dual UNION ALL SELECT 353 FROM dual UNION ALL SELECT 354 FROM dual UNION ALL SELECT 355 FROM dual UNION ALL SELECT 356 FROM dual UNION ALL SELECT 357 FROM dual UNION ALL SELECT 358 FROM dual UNION ALL SELECT 359 FROM dual UNION ALL SELECT 360 FROM dual UNION ALL SELECT 361 FROM dual UNION ALL SELECT 362 FROM dual UNION ALL SELECT 363 FROM dual UNION ALL SELECT 364 FROM dual UNION ALL SELECT 365 FROM dual UNION ALL SELECT 366 FROM dual UNION ALL SELECT 367 FROM dual UNION ALL SELECT 368 FROM dual UNION ALL SELECT 369 FROM dual UNION ALL SELECT 370 FROM dual UNION ALL SELECT 371 FROM dual UNION ALL SELECT 372 FROM dual UNION ALL SELECT 373 FROM dual UNION ALL SELECT 374 FROM dual UNION ALL SELECT 375 FROM dual UNION ALL SELECT 376 FROM dual UNION ALL SELECT 377 FROM dual UNION ALL SELECT 378 FROM dual UNION ALL SELECT 379 FROM dual UNION ALL SELECT 380 FROM dual UNION ALL SELECT 381 FROM dual UNION ALL SELECT 382 FROM dual UNION ALL SELECT 383 FROM dual UNION ALL SELECT 384 FROM dual UNION ALL SELECT 385 FROM dual UNION ALL SELECT 386 FROM dual UNION ALL SELECT 387 FROM dual UNION ALL SELECT 388 FROM dual UNION ALL SELECT 389 FROM dual UNION ALL SELECT 390 FROM dual UNION ALL SELECT 391 FROM dual UNION ALL SELECT 392 FROM dual UNION ALL SELECT 393 FROM dual UNION ALL SELECT 394 FROM dual UNION ALL SELECT 395 FROM dual UNION ALL SELECT 396 FROM dual UNION ALL SELECT 397 FROM dual UNION ALL SELECT 398 FROM dual UNION ALL SELECT 399 FROM dual UNION ALL SELECT 400 FROM dual UNION ALL SELECT 401 FROM dual UNION ALL SELECT 402 FROM dual UNION ALL SELECT 403 FROM dual UNION ALL SELECT 404 FROM dual UNION ALL SELECT 405 FROM dual UNION ALL SELECT 406 FROM dual UNION ALL SELECT 407 FROM dual UNION ALL SELECT 408 FROM dual UNION ALL SELECT 409 FROM dual UNION ALL SELECT 410 FROM dual UNION ALL SELECT 411 FROM dual UNION ALL SELECT 412 FROM dual UNION ALL SELECT 413 FROM dual UNION ALL SELECT 414 FROM dual UNION ALL SELECT 415 FROM dual UNION ALL SELECT 416 FROM dual UNION ALL SELECT 417 FROM dual UNION ALL SELECT 418 FROM dual UNION ALL SELECT 419 FROM dual UNION ALL SELECT 420 FROM dual UNION ALL SELECT 421 FROM dual UNION ALL SELECT 422 FROM dual UNION ALL SELECT 423 FROM dual UNION ALL SELECT 424 FROM dual UNION ALL SELECT 425 FROM dual UNION ALL SELECT 426 FROM dual UNION ALL SELECT 427 FROM dual UNION ALL SELECT 428 FROM dual UNION ALL SELECT 429 FROM dual UNION ALL SELECT 430 FROM dual UNION ALL SELECT 431 FROM dual UNION ALL SELECT 432 FROM dual UNION ALL SELECT 433 FROM dual UNION ALL SELECT 434 FROM dual UNION ALL SELECT 435 FROM dual UNION ALL SELECT 436 FROM dual UNION ALL SELECT 437 FROM dual UNION ALL SELECT 438 FROM dual UNION ALL SELECT 439 FROM dual UNION ALL SELECT 440 FROM dual UNION ALL SELECT 441 FROM dual UNION ALL SELECT 442 FROM dual UNION ALL SELECT 443 FROM dual UNION ALL SELECT 444 FROM dual UNION ALL SELECT 445 FROM dual UNION ALL SELECT 446 FROM dual UNION ALL SELECT 447 FROM dual UNION ALL SELECT 448 FROM dual UNION ALL SELECT 449 FROM dual UNION ALL SELECT 450 FROM dual UNION ALL SELECT 451 FROM dual UNION ALL SELECT 452 FROM dual UNION ALL SELECT 453 FROM dual UNION ALL SELECT 454 FROM dual UNION ALL SELECT 455 FROM dual UNION ALL SELECT 456 FROM dual UNION ALL SELECT 457 FROM dual UNION ALL SELECT 458 FROM dual UNION ALL SELECT 459 FROM dual UNION ALL SELECT 460 FROM dual UNION ALL SELECT 461 FROM dual UNION ALL SELECT 462 FROM dual UNION ALL SELECT 463 FROM dual UNION ALL SELECT 464 FROM dual UNION ALL SELECT 465 FROM dual UNION ALL SELECT 466 FROM dual UNION ALL SELECT 467 FROM dual UNION ALL SELECT 468 FROM dual UNION ALL SELECT 469 FROM dual UNION ALL SELECT 470 FROM dual UNION ALL SELECT 471 FROM dual UNION ALL SELECT 472 FROM dual UNION ALL SELECT 473 FROM dual UNION ALL SELECT 474 FROM dual UNION ALL SELECT 475 FROM dual UNION ALL SELECT 476 FROM dual UNION ALL SELECT 477 FROM dual UNION ALL SELECT 478 FROM dual UNION ALL SELECT 479 FROM dual UNION ALL SELECT 480 FROM dual UNION ALL SELECT 481 FROM dual UNION ALL SELECT 482 FROM dual UNION ALL SELECT 483 FROM dual UNION ALL SELECT 484 FROM dual UNION ALL SELECT 485 FROM dual UNION ALL SELECT 486 FROM dual UNION ALL SELECT 487 FROM dual UNION ALL SELECT 488 FROM dual UNION ALL SELECT 489 FROM dual UNION ALL SELECT 490 FROM dual UNION ALL SELECT 491 FROM dual UNION ALL SELECT 492 FROM dual UNION ALL SELECT 493 FROM dual UNION ALL SELECT 494 FROM dual UNION ALL SELECT 495 FROM dual UNION ALL SELECT 496 FROM dual UNION ALL SELECT 497 FROM dual UNION ALL SELECT 498 FROM dual UNION ALL SELECT 499 FROM dual UNION ALL SELECT 500 FROM dual UNION ALL SELECT 501 FROM dual UNION ALL SELECT 502 FROM dual UNION ALL SELECT 503 FROM dual UNION ALL SELECT 504 FROM dual UNION ALL SELECT 505 FROM dual UNION ALL SELECT 506 FROM dual UNION ALL SELECT 507 FROM dual UNION ALL SELECT 508 FROM dual UNION ALL SELECT 509 FROM dual UNION ALL SELECT 510 FROM dual UNION ALL SELECT 511 FROM dual UNION ALL SELECT 512 FROM dual UNION ALL SELECT 513 FROM dual UNION ALL SELECT 514 FROM dual UNION ALL SELECT 515 FROM dual UNION ALL SELECT 516 FROM dual UNION ALL SELECT 517 FROM dual UNION ALL SELECT 518 FROM dual UNION ALL SELECT 519 FROM dual UNION ALL SELECT 520 FROM dual UNION ALL SELECT 521 FROM dual UNION ALL SELECT 522 FROM dual UNION ALL SELECT 523 FROM dual UNION ALL SELECT 524 FROM dual UNION ALL SELECT 525 FROM dual UNION ALL SELECT 526 FROM dual UNION ALL SELECT 527 FROM dual UNION ALL SELECT 528 FROM dual UNION ALL SELECT 529 FROM dual UNION ALL SELECT 530 FROM dual UNION ALL SELECT 531 FROM dual UNION ALL SELECT 532 FROM dual UNION ALL SELECT 533 FROM dual UNION ALL SELECT 534 FROM dual UNION ALL SELECT 535 FROM dual UNION ALL SELECT 536 FROM dual UNION ALL SELECT 537 FROM dual UNION ALL SELECT 538 FROM dual UNION ALL SELECT 539 FROM dual UNION ALL SELECT 540 FROM dual UNION ALL SELECT 541 FROM dual UNION ALL SELECT 542 FROM dual UNION ALL SELECT 543 FROM dual UNION ALL SELECT 544 FROM dual UNION ALL SELECT 545 FROM dual UNION ALL SELECT 546 FROM dual UNION ALL SELECT 547 FROM dual UNION ALL SELECT 548 FROM dual UNION ALL SELECT 549 FROM dual UNION ALL SELECT 550 FROM dual UNION ALL SELECT 551 FROM dual UNION ALL SELECT 552 FROM dual UNION ALL SELECT 553 FROM dual UNION ALL SELECT 554 FROM dual UNION ALL SELECT 555 FROM dual UNION ALL SELECT 556 FROM dual UNION ALL SELECT 557 FROM dual UNION ALL SELECT 558 FROM dual UNION ALL SELECT 559 FROM dual UNION ALL SELECT 560 FROM dual UNION ALL SELECT 561 FROM dual UNION ALL SELECT 562 FROM dual UNION ALL SELECT 563 FROM dual UNION ALL SELECT 564 FROM dual UNION ALL SELECT 565 FROM dual UNION ALL SELECT 566 FROM dual UNION ALL SELECT 567 FROM dual UNION ALL SELECT 568 FROM dual UNION ALL SELECT 569 FROM dual UNION ALL SELECT 570 FROM dual UNION ALL SELECT 571 FROM dual UNION ALL SELECT 572 FROM dual UNION ALL SELECT 573 FROM dual UNION ALL SELECT 574 FROM dual UNION ALL SELECT 575 FROM dual UNION ALL SELECT 576 FROM dual UNION ALL SELECT 577 FROM dual UNION ALL SELECT 578 FROM dual UNION ALL SELECT 579 FROM dual UNION ALL SELECT 580 FROM dual UNION ALL SELECT 581 FROM dual UNION ALL SELECT 582 FROM dual UNION ALL SELECT 583 FROM dual UNION ALL SELECT 584 FROM dual UNION ALL SELECT 585 FROM dual UNION ALL SELECT 586 FROM dual UNION ALL SELECT 587 FROM dual UNION ALL SELECT 588 FROM dual UNION ALL SELECT 589 FROM dual UNION ALL SELECT 590 FROM dual UNION ALL SELECT 591 FROM dual UNION ALL SELECT 592 FROM dual UNION ALL SELECT 593 FROM dual UNION ALL SELECT 594 FROM dual UNION ALL SELECT 595 FROM dual UNION ALL SELECT 596 FROM dual UNION ALL SELECT 597 FROM dual UNION ALL SELECT 598 FROM dual UNION ALL SELECT 599 FROM dual UNION ALL SELECT 600 FROM dual UNION ALL SELECT 601 FROM dual UNION ALL SELECT 602 FROM dual UNION ALL SELECT 603 FROM dual UNION ALL SELECT 604 FROM dual UNION ALL SELECT 605 FROM dual UNION ALL SELECT 606 FROM dual UNION ALL SELECT 607 FROM dual UNION ALL SELECT 608 FROM dual UNION ALL SELECT 609 FROM dual UNION ALL SELECT 610 FROM dual UNION ALL SELECT 611 FROM dual UNION ALL SELECT 612 FROM dual UNION ALL SELECT 613 FROM dual UNION ALL SELECT 614 FROM dual UNION ALL SELECT 615 FROM dual UNION ALL SELECT 616 FROM dual UNION ALL SELECT 617 FROM dual UNION ALL SELECT 618 FROM dual UNION ALL SELECT 619 FROM dual UNION ALL SELECT 620 FROM dual UNION ALL SELECT 621 FROM dual UNION ALL SELECT 622 FROM dual UNION ALL SELECT 623 FROM dual UNION ALL SELECT 624 FROM dual UNION ALL SELECT 625 FROM dual UNION ALL SELECT 626 FROM dual UNION ALL SELECT 627 FROM dual UNION ALL SELECT 628 FROM dual UNION ALL SELECT 629 FROM dual UNION ALL SELECT 630 FROM dual UNION ALL SELECT 631 FROM dual UNION ALL SELECT 632 FROM dual UNION ALL SELECT 633 FROM dual UNION ALL SELECT 634 FROM dual UNION ALL SELECT 635 FROM dual UNION ALL SELECT 636 FROM dual UNION ALL SELECT 637 FROM dual UNION ALL SELECT 638 FROM dual UNION ALL SELECT 639 FROM dual UNION ALL SELECT 640 FROM dual UNION ALL SELECT 641 FROM dual UNION ALL SELECT 642 FROM dual UNION ALL SELECT 643 FROM dual UNION ALL SELECT 644 FROM dual UNION ALL SELECT 645 FROM dual UNION ALL SELECT 646 FROM dual UNION ALL SELECT 647 FROM dual UNION ALL SELECT 648 FROM dual UNION ALL SELECT 649 FROM dual UNION ALL SELECT 650 FROM dual UNION ALL SELECT 651 FROM dual UNION ALL SELECT 652 FROM dual UNION ALL SELECT 653 FROM dual UNION ALL SELECT 654 FROM dual UNION ALL SELECT 655 FROM dual UNION ALL SELECT 656 FROM dual UNION ALL SELECT 657 FROM dual UNION ALL SELECT 658 FROM dual UNION ALL SELECT 659 FROM dual UNION ALL SELECT 660 FROM dual UNION ALL SELECT 661 FROM dual UNION ALL SELECT 662 FROM dual UNION ALL SELECT 663 FROM dual UNION ALL SELECT 664 FROM dual UNION ALL SELECT 665 FROM dual UNION ALL SELECT 666 FROM dual UNION ALL SELECT 667 FROM dual UNION ALL SELECT 668 FROM dual UNION ALL SELECT 669 FROM dual UNION ALL SELECT 670 FROM dual UNION ALL SELECT 671 FROM dual UNION ALL SELECT 672 FROM dual UNION ALL SELECT 673 FROM dual UNION ALL SELECT 674 FROM dual UNION ALL SELECT 675 FROM dual UNION ALL SELECT 676 FROM dual UNION ALL SELECT 677 FROM dual UNION ALL SELECT 678 FROM dual UNION ALL SELECT 679 FROM dual UNION ALL SELECT 680 FROM dual UNION ALL SELECT 681 FROM dual UNION ALL SELECT 682 FROM dual UNION ALL SELECT 683 FROM dual UNION ALL SELECT 684 FROM dual UNION ALL SELECT 685 FROM dual UNION ALL SELECT 686 FROM dual UNION ALL SELECT 687 FROM dual UNION ALL SELECT 688 FROM dual UNION ALL SELECT 689 FROM dual UNION ALL SELECT 690 FROM dual UNION ALL SELECT 691 FROM dual UNION ALL SELECT 692 FROM dual UNION ALL SELECT 693 FROM dual UNION ALL SELECT 694 FROM dual UNION ALL SELECT 695 FROM dual UNION ALL SELECT 696 FROM dual UNION ALL SELECT 697 FROM dual UNION ALL SELECT 698 FROM dual UNION ALL SELECT 699 FROM dual UNION ALL SELECT 700 FROM dual UNION ALL SELECT 701 FROM dual UNION ALL SELECT 702 FROM dual UNION ALL SELECT 703 FROM dual UNION ALL SELECT 704 FROM dual UNION ALL SELECT 705 FROM dual UNION ALL SELECT 706 FROM dual UNION ALL SELECT 707 FROM dual UNION ALL SELECT 708 FROM dual UNION ALL SELECT 709 FROM dual UNION ALL SELECT 710 FROM dual UNION ALL SELECT 711 FROM dual UNION ALL SELECT 712 FROM dual UNION ALL SELECT 713 FROM dual UNION ALL SELECT 714 FROM dual UNION ALL SELECT 715 FROM dual UNION ALL SELECT 716 FROM dual UNION ALL SELECT 717 FROM dual UNION ALL SELECT 718 FROM dual UNION ALL SELECT 719 FROM dual UNION ALL SELECT 720 FROM dual UNION ALL SELECT 721 FROM dual UNION ALL SELECT 722 FROM dual UNION ALL SELECT 723 FROM dual UNION ALL SELECT 724 FROM dual UNION ALL SELECT 725 FROM dual UNION ALL SELECT 726 FROM dual UNION ALL SELECT 727 FROM dual UNION ALL SELECT 728 FROM dual UNION ALL SELECT 729 FROM dual UNION ALL SELECT 730 FROM dual UNION ALL SELECT 731 FROM dual UNION ALL SELECT 732 FROM dual UNION ALL SELECT 733 FROM dual UNION ALL SELECT 734 FROM dual UNION ALL SELECT 735 FROM dual UNION ALL SELECT 736 FROM dual UNION ALL SELECT 737 FROM dual UNION ALL SELECT 738 FROM dual UNION ALL SELECT 739 FROM dual UNION ALL SELECT 740 FROM dual UNION ALL SELECT 741 FROM dual UNION ALL SELECT 742 FROM dual UNION ALL SELECT 743 FROM dual UNION ALL SELECT 744 FROM dual UNION ALL SELECT 745 FROM dual UNION ALL SELECT 746 FROM dual UNION ALL SELECT 747 FROM dual UNION ALL SELECT 748 FROM dual UNION ALL SELECT 749 FROM dual UNION ALL SELECT 750 FROM dual UNION ALL SELECT 751 FROM dual UNION ALL SELECT 752 FROM dual UNION ALL SELECT 753 FROM dual UNION ALL SELECT 754 FROM dual UNION ALL SELECT 755 FROM dual UNION ALL SELECT 756 FROM dual UNION ALL SELECT 757 FROM dual UNION ALL SELECT 758 FROM dual UNION ALL SELECT 759 FROM dual UNION ALL SELECT 760 FROM dual UNION ALL SELECT 761 FROM dual UNION ALL SELECT 762 FROM dual UNION ALL SELECT 763 FROM dual UNION ALL SELECT 764 FROM dual UNION ALL SELECT 765 FROM dual UNION ALL SELECT 766 FROM dual UNION ALL SELECT 767 FROM dual UNION ALL SELECT 768 FROM dual UNION ALL SELECT 769 FROM dual UNION ALL SELECT 770 FROM dual UNION ALL SELECT 771 FROM dual UNION ALL SELECT 772 FROM dual UNION ALL SELECT 773 FROM dual UNION ALL SELECT 774 FROM dual UNION ALL SELECT 775 FROM dual UNION ALL SELECT 776 FROM dual UNION ALL SELECT 777 FROM dual UNION ALL SELECT 778 FROM dual UNION ALL SELECT 779 FROM dual UNION ALL SELECT 780 FROM dual UNION ALL SELECT 781 FROM dual UNION ALL SELECT 782 FROM dual UNION ALL SELECT 783 FROM dual UNION ALL SELECT 784 FROM dual UNION ALL SELECT 785 FROM dual UNION ALL SELECT 786 FROM dual UNION ALL SELECT 787 FROM dual UNION ALL SELECT 788 FROM dual UNION ALL SELECT 789 FROM dual UNION ALL SELECT 790 FROM dual UNION ALL SELECT 791 FROM dual UNION ALL SELECT 792 FROM dual UNION ALL SELECT 793 FROM dual UNION ALL SELECT 794 FROM dual UNION ALL SELECT 795 FROM dual UNION ALL SELECT 796 FROM dual UNION ALL SELECT 797 FROM dual UNION ALL SELECT 798 FROM dual UNION ALL SELECT 799 FROM dual UNION ALL SELECT 800 FROM dual UNION ALL SELECT 801 FROM dual UNION ALL SELECT 802 FROM dual UNION ALL SELECT 803 FROM dual UNION ALL SELECT 804 FROM dual UNION ALL SELECT 805 FROM dual UNION ALL SELECT 806 FROM dual UNION ALL SELECT 807 FROM dual UNION ALL SELECT 808 FROM dual UNION ALL SELECT 809 FROM dual UNION ALL SELECT 810 FROM dual UNION ALL SELECT 811 FROM dual UNION ALL SELECT 812 FROM dual UNION ALL SELECT 813 FROM dual UNION ALL SELECT 814 FROM dual UNION ALL SELECT 815 FROM dual UNION ALL SELECT 816 FROM dual UNION ALL SELECT 817 FROM dual UNION ALL SELECT 818 FROM dual UNION ALL SELECT 819 FROM dual UNION ALL SELECT 820 FROM dual UNION ALL SELECT 821 FROM dual UNION ALL SELECT 822 FROM dual UNION ALL SELECT 823 FROM dual UNION ALL SELECT 824 FROM dual UNION ALL SELECT 825 FROM dual UNION ALL SELECT 826 FROM dual UNION ALL SELECT 827 FROM dual UNION ALL SELECT 828 FROM dual UNION ALL SELECT 829 FROM dual UNION ALL SELECT 830 FROM dual UNION ALL SELECT 831 FROM dual UNION ALL SELECT 832 FROM dual UNION ALL SELECT 833 FROM dual UNION ALL SELECT 834 FROM dual UNION ALL SELECT 835 FROM dual UNION ALL SELECT 836 FROM dual UNION ALL SELECT 837 FROM dual UNION ALL SELECT 838 FROM dual UNION ALL SELECT 839 FROM dual UNION ALL SELECT 840 FROM dual UNION ALL SELECT 841 FROM dual UNION ALL SELECT 842 FROM dual UNION ALL SELECT 843 FROM dual UNION ALL SELECT 844 FROM dual UNION ALL SELECT 845 FROM dual UNION ALL SELECT 846 FROM dual UNION ALL SELECT 847 FROM dual UNION ALL SELECT 848 FROM dual UNION ALL SELECT 849 FROM dual UNION ALL SELECT 850 FROM dual UNION ALL SELECT 851 FROM dual UNION ALL SELECT 852 FROM dual UNION ALL SELECT 853 FROM dual UNION ALL SELECT 854 FROM dual UNION ALL SELECT 855 FROM dual UNION ALL SELECT 856 FROM dual UNION ALL SELECT 857 FROM dual UNION ALL SELECT 858 FROM dual UNION ALL SELECT 859 FROM dual UNION ALL SELECT 860 FROM dual UNION ALL SELECT 861 FROM dual UNION ALL SELECT 862 FROM dual UNION ALL SELECT 863 FROM dual UNION ALL SELECT 864 FROM dual UNION ALL SELECT 865 FROM dual UNION ALL SELECT 866 FROM dual UNION ALL SELECT 867 FROM dual UNION ALL SELECT 868 FROM dual UNION ALL SELECT 869 FROM dual UNION ALL SELECT 870 FROM dual UNION ALL SELECT 871 FROM dual UNION ALL SELECT 872 FROM dual UNION ALL SELECT 873 FROM dual UNION ALL SELECT 874 FROM dual UNION ALL SELECT 875 FROM dual UNION ALL SELECT 876 FROM dual UNION ALL SELECT 877 FROM dual UNION ALL SELECT 878 FROM dual UNION ALL SELECT 879 FROM dual UNION ALL SELECT 880 FROM dual UNION ALL SELECT 881 FROM dual UNION ALL SELECT 882 FROM dual UNION ALL SELECT 883 FROM dual UNION ALL SELECT 884 FROM dual UNION ALL SELECT 885 FROM dual UNION ALL SELECT 886 FROM dual UNION ALL SELECT 887 FROM dual UNION ALL SELECT 888 FROM dual UNION ALL SELECT 889 FROM dual UNION ALL SELECT 890 FROM dual UNION ALL SELECT 891 FROM dual UNION ALL SELECT 892 FROM dual UNION ALL SELECT 893 FROM dual UNION ALL SELECT 894 FROM dual UNION ALL SELECT 895 FROM dual UNION ALL SELECT 896 FROM dual UNION ALL SELECT 897 FROM dual UNION ALL SELECT 898 FROM dual UNION ALL SELECT 899 FROM dual UNION ALL SELECT 900 FROM dual UNION ALL SELECT 901 FROM dual UNION ALL SELECT 902 FROM dual UNION ALL SELECT 903 FROM dual UNION ALL SELECT 904 FROM dual UNION ALL SELECT 905 FROM dual UNION ALL SELECT 906 FROM dual UNION ALL SELECT 907 FROM dual UNION ALL SELECT 908 FROM dual UNION ALL SELECT 909 FROM dual UNION ALL SELECT 910 FROM dual UNION ALL SELECT 911 FROM dual UNION ALL SELECT 912 FROM dual UNION ALL SELECT 913 FROM dual UNION ALL SELECT 914 FROM dual UNION ALL SELECT 915 FROM dual UNION ALL SELECT 916 FROM dual UNION ALL SELECT 917 FROM dual UNION ALL SELECT 918 FROM dual UNION ALL SELECT 919 FROM dual UNION ALL SELECT 920 FROM dual UNION ALL SELECT 921 FROM dual UNION ALL SELECT 922 FROM dual UNION ALL SELECT 923 FROM dual UNION ALL SELECT 924 FROM dual UNION ALL SELECT 925 FROM dual UNION ALL SELECT 926 FROM dual UNION ALL SELECT 927 FROM dual UNION ALL SELECT 928 FROM dual UNION ALL SELECT 929 FROM dual UNION ALL SELECT 930 FROM dual UNION ALL SELECT 931 FROM dual UNION ALL SELECT 932 FROM dual UNION ALL SELECT 933 FROM dual UNION ALL SELECT 934 FROM dual UNION ALL SELECT 935 FROM dual UNION ALL SELECT 936 FROM dual UNION ALL SELECT 937 FROM dual UNION ALL SELECT 938 FROM dual UNION ALL SELECT 939 FROM dual UNION ALL SELECT 940 FROM dual UNION ALL SELECT 941 FROM dual UNION ALL SELECT 942 FROM dual UNION ALL SELECT 943 FROM dual UNION ALL SELECT 944 FROM dual UNION ALL SELECT 945 FROM dual UNION ALL SELECT 946 FROM dual UNION ALL SELECT 947 FROM dual UNION ALL SELECT 948 FROM dual UNION ALL SELECT 949 FROM dual UNION ALL SELECT 950 FROM dual UNION ALL SELECT 951 FROM dual UNION ALL SELECT 952 FROM dual UNION ALL SELECT 953 FROM dual UNION ALL SELECT 954 FROM dual UNION ALL SELECT 955 FROM dual UNION ALL SELECT 956 FROM dual UNION ALL SELECT 957 FROM dual UNION ALL SELECT 958 FROM dual UNION ALL SELECT 959 FROM dual UNION ALL SELECT 960 FROM dual UNION ALL SELECT 961 FROM dual UNION ALL SELECT 962 FROM dual UNION ALL SELECT 963 FROM dual UNION ALL SELECT 964 FROM dual UNION ALL SELECT 965 FROM dual UNION ALL SELECT 966 FROM dual UNION ALL SELECT 967 FROM dual UNION ALL SELECT 968 FROM dual UNION ALL SELECT 969 FROM dual UNION ALL SELECT 970 FROM dual UNION ALL SELECT 971 FROM dual UNION ALL SELECT 972 FROM dual UNION ALL SELECT 973 FROM dual UNION ALL SELECT 974 FROM dual UNION ALL SELECT 975 FROM dual UNION ALL SELECT 976 FROM dual UNION ALL SELECT 977 FROM dual UNION ALL SELECT 978 FROM dual UNION ALL SELECT 979 FROM dual UNION ALL SELECT 980 FROM dual UNION ALL SELECT 981 FROM dual UNION ALL SELECT 982 FROM dual UNION ALL SELECT 983 FROM dual UNION ALL SELECT 984 FROM dual UNION ALL SELECT 985 FROM dual UNION ALL SELECT 986 FROM dual UNION ALL SELECT 987 FROM dual UNION ALL SELECT 988 FROM dual UNION ALL SELECT 989 FROM dual UNION ALL SELECT 990 FROM dual UNION ALL SELECT 991 FROM dual UNION ALL SELECT 992 FROM dual UNION ALL SELECT 993 FROM dual UNION ALL SELECT 994 FROM dual UNION ALL SELECT 995 FROM dual UNION ALL SELECT 996 FROM dual UNION ALL SELECT 997 FROM dual UNION ALL SELECT 998 FROM dual UNION ALL SELECT 999 FROM dual UNION ALL SELECT 1000 FROM dual UNION ALL SELECT 1001 FROM dual UNION ALL SELECT 1002 FROM dual UNION ALL SELECT 1003 FROM dual UNION ALL SELECT 1004 FROM dual UNION ALL SELECT 1005 FROM dual UNION ALL SELECT 1006 FROM dual UNION ALL SELECT 1007 FROM dual UNION ALL SELECT 1008 FROM dual UNION ALL SELECT 1009 FROM dual UNION ALL SELECT 1010 FROM dual UNION ALL SELECT 1011 FROM dual UNION ALL SELECT 1012 FROM dual UNION ALL SELECT 1013 FROM dual UNION ALL SELECT 1014 FROM dual UNION ALL SELECT 1015 FROM dual UNION ALL SELECT 1016 FROM dual UNION ALL SELECT 1017 FROM dual UNION ALL SELECT 1018 FROM dual UNION ALL SELECT 1019 FROM dual UNION ALL SELECT 1020 FROM dual UNION ALL SELECT 1021 FROM dual UNION ALL SELECT 1022 FROM dual UNION ALL SELECT 1023 FROM dual UNION ALL SELECT 1024 FROM dual UNION ALL SELECT 1025 FROM dual UNION ALL SELECT 1026 FROM dual UNION ALL SELECT 1027 FROM dual UNION ALL SELECT 1028 FROM dual UNION ALL SELECT 1029 FROM dual UNION ALL SELECT 1030 FROM dual UNION ALL SELECT 1031 FROM dual UNION ALL SELECT 1032 FROM dual UNION ALL SELECT 1033 FROM dual UNION ALL SELECT 1034 FROM dual UNION ALL SELECT 1035 FROM dual UNION ALL SELECT 1036 FROM dual UNION ALL SELECT 1037 FROM dual UNION ALL SELECT 1038 FROM dual UNION ALL SELECT 1039 FROM dual UNION ALL SELECT 1040 FROM dual UNION ALL SELECT 1041 FROM dual UNION ALL SELECT 1042 FROM dual UNION ALL SELECT 1043 FROM dual UNION ALL SELECT 1044 FROM dual UNION ALL SELECT 1045 FROM dual UNION ALL SELECT 1046 FROM dual UNION ALL SELECT 1047 FROM dual UNION ALL SELECT 1048 FROM dual UNION ALL SELECT 1049 FROM dual UNION ALL SELECT 1050 FROM dual UNION ALL SELECT 1051 FROM dual UNION ALL SELECT 1052 FROM dual UNION ALL SELECT 1053 FROM dual UNION ALL SELECT 1054 FROM dual UNION ALL SELECT 1055 FROM dual UNION ALL SELECT 1056 FROM dual UNION ALL SELECT 1057 FROM dual UNION ALL SELECT 1058 FROM dual UNION ALL SELECT 1059 FROM dual UNION ALL SELECT 1060 FROM dual UNION ALL SELECT 1061 FROM dual UNION ALL SELECT 1062 FROM dual UNION ALL SELECT 1063 FROM dual UNION ALL SELECT 1064 FROM dual UNION ALL SELECT 1065 FROM dual UNION ALL SELECT 1066 FROM dual UNION ALL SELECT 1067 FROM dual UNION ALL SELECT 1068 FROM dual UNION ALL SELECT 1069 FROM dual UNION ALL SELECT 1070 FROM dual UNION ALL SELECT 1071 FROM dual UNION ALL SELECT 1072 FROM dual UNION ALL SELECT 1073 FROM dual UNION ALL SELECT 1074 FROM dual UNION ALL SELECT 1075 FROM dual UNION ALL SELECT 1076 FROM dual UNION ALL SELECT 1077 FROM dual UNION ALL SELECT 1078 FROM dual UNION ALL SELECT 1079 FROM dual UNION ALL SELECT 1080 FROM dual UNION ALL SELECT 1081 FROM dual UNION ALL SELECT 1082 FROM dual UNION ALL SELECT 1083 FROM dual UNION ALL SELECT 1084 FROM dual UNION ALL SELECT 1085 FROM dual UNION ALL SELECT 1086 FROM dual UNION ALL SELECT 1087 FROM dual UNION ALL SELECT 1088 FROM dual UNION ALL SELECT 1089 FROM dual UNION ALL SELECT 1090 FROM dual UNION ALL SELECT 1091 FROM dual UNION ALL SELECT 1092 FROM dual UNION ALL SELECT 1093 FROM dual UNION ALL SELECT 1094 FROM dual UNION ALL SELECT 1095 FROM dual UNION ALL SELECT 1096 FROM dual UNION ALL SELECT 1097 FROM dual UNION ALL SELECT 1098 FROM dual UNION ALL SELECT 1099 FROM dual UNION ALL SELECT 1100 FROM dual UNION ALL SELECT 1101 FROM dual UNION ALL SELECT 1102 FROM dual UNION ALL SELECT 1103 FROM dual UNION ALL SELECT 1104 FROM dual UNION ALL SELECT 1105 FROM dual UNION ALL SELECT 1106 FROM dual UNION ALL SELECT 1107 FROM dual UNION ALL SELECT 1108 FROM dual UNION ALL SELECT 1109 FROM dual UNION ALL SELECT 1110 FROM dual UNION ALL SELECT 1111 FROM dual UNION ALL SELECT 1112 FROM dual UNION ALL SELECT 1113 FROM dual UNION ALL SELECT 1114 FROM dual UNION ALL SELECT 1115 FROM dual UNION ALL SELECT 1116 FROM dual UNION ALL SELECT 1117 FROM dual UNION ALL SELECT 1118 FROM dual UNION ALL SELECT 1119 FROM dual UNION ALL SELECT 1120 FROM dual UNION ALL SELECT 1121 FROM dual UNION ALL SELECT 1122 FROM dual UNION ALL SELECT 1123 FROM dual UNION ALL SELECT 1124 FROM dual UNION ALL SELECT 1125 FROM dual UNION ALL SELECT 1126 FROM dual UNION ALL SELECT 1127 FROM dual UNION ALL SELECT 1128 FROM dual UNION ALL SELECT 1129 FROM dual UNION ALL SELECT 1130 FROM dual UNION ALL SELECT 1131 FROM dual UNION ALL SELECT 1132 FROM dual UNION ALL SELECT 1133 FROM dual UNION ALL SELECT 1134 FROM dual UNION ALL SELECT 1135 FROM dual UNION ALL SELECT 1136 FROM dual UNION ALL SELECT 1137 FROM dual UNION ALL SELECT 1138 FROM dual UNION ALL SELECT 1139 FROM dual UNION ALL SELECT 1140 FROM dual UNION ALL SELECT 1141 FROM dual UNION ALL SELECT 1142 FROM dual UNION ALL SELECT 1143 FROM dual UNION ALL SELECT 1144 FROM dual UNION ALL SELECT 1145 FROM dual UNION ALL SELECT 1146 FROM dual UNION ALL SELECT 1147 FROM dual UNION ALL SELECT 1148 FROM dual UNION ALL SELECT 1149 FROM dual UNION ALL SELECT 1150 FROM dual UNION ALL SELECT 1151 FROM dual UNION ALL SELECT 1152 FROM dual UNION ALL SELECT 1153 FROM dual UNION ALL SELECT 1154 FROM dual UNION ALL SELECT 1155 FROM dual UNION ALL SELECT 1156 FROM dual UNION ALL SELECT 1157 FROM dual UNION ALL SELECT 1158 FROM dual UNION ALL SELECT 1159 FROM dual UNION ALL SELECT 1160 FROM dual UNION ALL SELECT 1161 FROM dual UNION ALL SELECT 1162 FROM dual UNION ALL SELECT 1163 FROM dual UNION ALL SELECT 1164 FROM dual UNION ALL SELECT 1165 FROM dual UNION ALL SELECT 1166 FROM dual UNION ALL SELECT 1167 FROM dual UNION ALL SELECT 1168 FROM dual UNION ALL SELECT 1169 FROM dual UNION ALL SELECT 1170 FROM dual UNION ALL SELECT 1171 FROM dual UNION ALL SELECT 1172 FROM dual UNION ALL SELECT 1173 FROM dual UNION ALL SELECT 1174 FROM dual UNION ALL SELECT 1175 FROM dual UNION ALL SELECT 1176 FROM dual UNION ALL SELECT 1177 FROM dual UNION ALL SELECT 1178 FROM dual UNION ALL SELECT 1179 FROM dual UNION ALL SELECT 1180 FROM dual UNION ALL SELECT 1181 FROM dual UNION ALL SELECT 1182 FROM dual UNION ALL SELECT 1183 FROM dual UNION ALL SELECT 1184 FROM dual UNION ALL SELECT 1185 FROM dual UNION ALL SELECT 1186 FROM dual UNION ALL SELECT 1187 FROM dual UNION ALL SELECT 1188 FROM dual UNION ALL SELECT 1189 FROM dual UNION ALL SELECT 1190 FROM dual UNION ALL SELECT 1191 FROM dual UNION ALL SELECT 1192 FROM dual UNION ALL SELECT 1193 FROM dual UNION ALL SELECT 1194 FROM dual UNION ALL SELECT 1195 FROM dual UNION ALL SELECT 1196 FROM dual UNION ALL SELECT 1197 FROM dual UNION ALL SELECT 1198 FROM dual UNION ALL SELECT 1199 FROM dual UNION ALL SELECT 1200 FROM dual UNION ALL SELECT 1201 FROM dual UNION ALL SELECT 1202 FROM dual UNION ALL SELECT 1203 FROM dual UNION ALL SELECT 1204 FROM dual UNION ALL SELECT 1205 FROM dual UNION ALL SELECT 1206 FROM dual UNION ALL SELECT 1207 FROM dual UNION ALL SELECT 1208 FROM dual UNION ALL SELECT 1209 FROM dual UNION ALL SELECT 1210 FROM dual UNION ALL SELECT 1211 FROM dual UNION ALL SELECT 1212 FROM dual UNION ALL SELECT 1213 FROM dual UNION ALL SELECT 1214 FROM dual UNION ALL SELECT 1215 FROM dual UNION ALL SELECT 1216 FROM dual UNION ALL SELECT 1217 FROM dual UNION ALL SELECT 1218 FROM dual UNION ALL SELECT 1219 FROM dual UNION ALL SELECT 1220 FROM dual UNION ALL SELECT 1221 FROM dual UNION ALL SELECT 1222 FROM dual UNION ALL SELECT 1223 FROM dual UNION ALL SELECT 1224 FROM dual UNION ALL SELECT 1225 FROM dual UNION ALL SELECT 1226 FROM dual UNION ALL SELECT 1227 FROM dual UNION ALL SELECT 1228 FROM dual UNION ALL SELECT 1229 FROM dual UNION ALL SELECT 1230 FROM dual UNION ALL SELECT 1231 FROM dual UNION ALL SELECT 1232 FROM dual UNION ALL SELECT 1233 FROM dual UNION ALL SELECT 1234 FROM dual UNION ALL SELECT 1235 FROM dual UNION ALL SELECT 1236 FROM dual UNION ALL SELECT 1237 FROM dual UNION ALL SELECT 1238 FROM dual UNION ALL SELECT 1239 FROM dual UNION ALL SELECT 1240 FROM dual UNION ALL SELECT 1241 FROM dual UNION ALL SELECT 1242 FROM dual UNION ALL SELECT 1243 FROM dual UNION ALL SELECT 1244 FROM dual UNION ALL SELECT 1245 FROM dual UNION ALL SELECT 1246 FROM dual UNION ALL SELECT 1247 FROM dual UNION ALL SELECT 1248 FROM dual UNION ALL SELECT 1249 FROM dual UNION ALL SELECT 1250 FROM dual UNION ALL SELECT 1251 FROM dual UNION ALL SELECT 1252 FROM dual UNION ALL SELECT 1253 FROM dual UNION ALL SELECT 1254 FROM dual UNION ALL SELECT 1255 FROM dual UNION ALL SELECT 1256 FROM dual UNION ALL SELECT 1257 FROM dual UNION ALL SELECT 1258 FROM dual UNION ALL SELECT 1259 FROM dual UNION ALL SELECT 1260 FROM dual UNION ALL SELECT 1261 FROM dual UNION ALL SELECT 1262 FROM dual UNION ALL SELECT 1263 FROM dual UNION ALL SELECT 1264 FROM dual UNION ALL SELECT 1265 FROM dual UNION ALL SELECT 1266 FROM dual UNION ALL SELECT 1267 FROM dual UNION ALL SELECT 1268 FROM dual UNION ALL SELECT 1269 FROM dual UNION ALL SELECT 1270 FROM dual UNION ALL SELECT 1271 FROM dual UNION ALL SELECT 1272 FROM dual UNION ALL SELECT 1273 FROM dual UNION ALL SELECT 1274 FROM dual UNION ALL SELECT 1275 FROM dual UNION ALL SELECT 1276 FROM dual UNION ALL SELECT 1277 FROM dual UNION ALL SELECT 1278 FROM dual UNION ALL SELECT 1279 FROM dual UNION ALL SELECT 1280 FROM dual UNION ALL SELECT 1281 FROM dual UNION ALL SELECT 1282 FROM dual UNION ALL SELECT 1283 FROM dual UNION ALL SELECT 1284 FROM dual UNION ALL SELECT 1285 FROM dual UNION ALL SELECT 1286 FROM dual UNION ALL SELECT 1287 FROM dual UNION ALL SELECT 1288 FROM dual UNION ALL SELECT 1289 FROM dual UNION ALL SELECT 1290 FROM dual UNION ALL SELECT 1291 FROM dual UNION ALL SELECT 1292 FROM dual UNION ALL SELECT 1293 FROM dual UNION ALL SELECT 1294 FROM dual UNION ALL SELECT 1295 FROM dual UNION ALL SELECT 1296 FROM dual UNION ALL SELECT 1297 FROM dual UNION ALL SELECT 1298 FROM dual UNION ALL SELECT 1299 FROM dual UNION ALL SELECT 1300 FROM dual UNION ALL SELECT 1301 FROM dual UNION ALL SELECT 1302 FROM dual UNION ALL SELECT 1303 FROM dual UNION ALL SELECT 1304 FROM dual UNION ALL SELECT 1305 FROM dual UNION ALL SELECT 1306 FROM dual UNION ALL SELECT 1307 FROM dual UNION ALL SELECT 1308 FROM dual UNION ALL SELECT 1309 FROM dual UNION ALL SELECT 1310 FROM dual UNION ALL SELECT 1311 FROM dual UNION ALL SELECT 1312 FROM dual UNION ALL SELECT 1313 FROM dual UNION ALL SELECT 1314 FROM dual UNION ALL SELECT 1315 FROM dual UNION ALL SELECT 1316 FROM dual UNION ALL SELECT 1317 FROM dual UNION ALL SELECT 1318 FROM dual UNION ALL SELECT 1319 FROM dual UNION ALL SELECT 1320 FROM dual UNION ALL SELECT 1321 FROM dual UNION ALL SELECT 1322 FROM dual UNION ALL SELECT 1323 FROM dual UNION ALL SELECT 1324 FROM dual UNION ALL SELECT 1325 FROM dual UNION ALL SELECT 1326 FROM dual UNION ALL SELECT 1327 FROM dual UNION ALL SELECT 1328 FROM dual UNION ALL SELECT 1329 FROM dual UNION ALL SELECT 1330 FROM dual UNION ALL SELECT 1331 FROM dual UNION ALL SELECT 1332 FROM dual UNION ALL SELECT 1333 FROM dual UNION ALL SELECT 1334 FROM dual UNION ALL SELECT 1335 FROM dual UNION ALL SELECT 1336 FROM dual UNION ALL SELECT 1337 FROM dual UNION ALL SELECT 1338 FROM dual UNION ALL SELECT 1339 FROM dual UNION ALL SELECT 1340 FROM dual UNION ALL SELECT 1341 FROM dual UNION ALL SELECT 1342 FROM dual UNION ALL SELECT 1343 FROM dual UNION ALL SELECT 1344 FROM dual UNION ALL SELECT 1345 FROM dual UNION ALL SELECT 1346 FROM dual UNION ALL SELECT 1347 FROM dual UNION ALL SELECT 1348 FROM dual UNION ALL SELECT 1349 FROM dual UNION ALL SELECT 1350 FROM dual UNION ALL SELECT 1351 FROM dual UNION ALL SELECT 1352 FROM dual UNION ALL SELECT 1353 FROM dual UNION ALL SELECT 1354 FROM dual UNION ALL SELECT 1355 FROM dual UNION ALL SELECT 1356 FROM dual UNION ALL SELECT 1357 FROM dual UNION ALL SELECT 1358 FROM dual UNION ALL SELECT 1359 FROM dual UNION ALL SELECT 1360 FROM dual UNION ALL SELECT 1361 FROM dual UNION ALL SELECT 1362 FROM dual UNION ALL SELECT 1363 FROM dual UNION ALL SELECT 1364 FROM dual UNION ALL SELECT 1365 FROM dual UNION ALL SELECT 1366 FROM dual UNION ALL SELECT 1367 FROM dual UNION ALL SELECT 1368 FROM dual UNION ALL SELECT 1369 FROM dual UNION ALL SELECT 1370 FROM dual UNION ALL SELECT 1371 FROM dual UNION ALL SELECT 1372 FROM dual UNION ALL SELECT 1373 FROM dual UNION ALL SELECT 1374 FROM dual UNION ALL SELECT 1375 FROM dual UNION ALL SELECT 1376 FROM dual UNION ALL SELECT 1377 FROM dual UNION ALL SELECT 1378 FROM dual UNION ALL SELECT 1379 FROM dual UNION ALL SELECT 1380 FROM dual UNION ALL SELECT 1381 FROM dual UNION ALL SELECT 1382 FROM dual UNION ALL SELECT 1383 FROM dual UNION ALL SELECT 1384 FROM dual UNION ALL SELECT 1385 FROM dual UNION ALL SELECT 1386 FROM dual UNION ALL SELECT 1387 FROM dual UNION ALL SELECT 1388 FROM dual UNION ALL SELECT 1389 FROM dual UNION ALL SELECT 1390 FROM dual UNION ALL SELECT 1391 FROM dual UNION ALL SELECT 1392 FROM dual UNION ALL SELECT 1393 FROM dual UNION ALL SELECT 1394 FROM dual UNION ALL SELECT 1395 FROM dual UNION ALL SELECT 1396 FROM dual UNION ALL SELECT 1397 FROM dual UNION ALL SELECT 1398 FROM dual UNION ALL SELECT 1399 FROM dual UNION ALL SELECT 1400 FROM dual UNION ALL SELECT 1401 FROM dual UNION ALL SELECT 1402 FROM dual UNION ALL SELECT 1403 FROM dual UNION ALL SELECT 1404 FROM dual UNION ALL SELECT 1405 FROM dual UNION ALL SELECT 1406 FROM dual UNION ALL SELECT 1407 FROM dual UNION ALL SELECT 1408 FROM dual UNION ALL SELECT 1409 FROM dual UNION ALL SELECT 1410 FROM dual UNION ALL SELECT 1411 FROM dual UNION ALL SELECT 1412 FROM dual UNION ALL SELECT 1413 FROM dual UNION ALL SELECT 1414 FROM dual UNION ALL SELECT 1415 FROM dual UNION ALL SELECT 1416 FROM dual UNION ALL SELECT 1417 FROM dual UNION ALL SELECT 1418 FROM dual UNION ALL SELECT 1419 FROM dual UNION ALL SELECT 1420 FROM dual UNION ALL SELECT 1421 FROM dual UNION ALL SELECT 1422 FROM dual UNION ALL SELECT 1423 FROM dual UNION ALL SELECT 1424 FROM dual UNION ALL SELECT 1425 FROM dual UNION ALL SELECT 1426 FROM dual UNION ALL SELECT 1427 FROM dual UNION ALL SELECT 1428 FROM dual UNION ALL SELECT 1429 FROM dual UNION ALL SELECT 1430 FROM dual UNION ALL SELECT 1431 FROM dual UNION ALL SELECT 1432 FROM dual UNION ALL SELECT 1433 FROM dual UNION ALL SELECT 1434 FROM dual UNION ALL SELECT 1435 FROM dual UNION ALL SELECT 1436 FROM dual UNION ALL SELECT 1437 FROM dual UNION ALL SELECT 1438 FROM dual UNION ALL SELECT 1439 FROM dual UNION ALL SELECT 1440 FROM dual UNION ALL SELECT 1441 FROM dual UNION ALL SELECT 1442 FROM dual UNION ALL SELECT 1443 FROM dual UNION ALL SELECT 1444 FROM dual UNION ALL SELECT 1445 FROM dual UNION ALL SELECT 1446 FROM dual UNION ALL SELECT 1447 FROM dual UNION ALL SELECT 1448 FROM dual UNION ALL SELECT 1449 FROM dual UNION ALL SELECT 1450 FROM dual UNION ALL SELECT 1451 FROM dual UNION ALL SELECT 1452 FROM dual UNION ALL SELECT 1453 FROM dual UNION ALL SELECT 1454 FROM dual UNION ALL SELECT 1455 FROM dual UNION ALL SELECT 1456 FROM dual UNION ALL SELECT 1457 FROM dual UNION ALL SELECT 1458 FROM dual UNION ALL SELECT 1459 FROM dual UNION ALL SELECT 1460 FROM dual UNION ALL SELECT 1461 FROM dual UNION ALL SELECT 1462 FROM dual UNION ALL SELECT 1463 FROM dual UNION ALL SELECT 1464 FROM dual UNION ALL SELECT 1465 FROM dual UNION ALL SELECT 1466 FROM dual UNION ALL SELECT 1467 FROM dual UNION ALL SELECT 1468 FROM dual UNION ALL SELECT 1469 FROM dual UNION ALL SELECT 1470 FROM dual UNION ALL SELECT 1471 FROM dual UNION ALL SELECT 1472 FROM dual UNION ALL SELECT 1473 FROM dual UNION ALL SELECT 1474 FROM dual UNION ALL SELECT 1475 FROM dual UNION ALL SELECT 1476 FROM dual UNION ALL SELECT 1477 FROM dual UNION ALL SELECT 1478 FROM dual UNION ALL SELECT 1479 FROM dual UNION ALL SELECT 1480 FROM dual UNION ALL SELECT 1481 FROM dual UNION ALL SELECT 1482 FROM dual UNION ALL SELECT 1483 FROM dual UNION ALL SELECT 1484 FROM dual UNION ALL SELECT 1485 FROM dual UNION ALL SELECT 1486 FROM dual UNION ALL SELECT 1487 FROM dual UNION ALL SELECT 1488 FROM dual UNION ALL SELECT 1489 FROM dual UNION ALL SELECT 1490 FROM dual UNION ALL SELECT 1491 FROM dual UNION ALL SELECT 1492 FROM dual UNION ALL SELECT 1493 FROM dual UNION ALL SELECT 1494 FROM dual UNION ALL SELECT 1495 FROM dual UNION ALL SELECT 1496 FROM dual UNION ALL SELECT 1497 FROM dual UNION ALL SELECT 1498 FROM dual UNION ALL SELECT 1499 FROM dual UNION ALL SELECT 1500 FROM dual UNION ALL SELECT 1501 FROM dual UNION ALL SELECT 1502 FROM dual UNION ALL SELECT 1503 FROM dual UNION ALL SELECT 1504 FROM dual UNION ALL SELECT 1505 FROM dual UNION ALL SELECT 1506 FROM dual UNION ALL SELECT 1507 FROM dual UNION ALL SELECT 1508 FROM dual UNION ALL SELECT 1509 FROM dual UNION ALL SELECT 1510 FROM dual UNION ALL SELECT 1511 FROM dual UNION ALL SELECT 1512 FROM dual UNION ALL SELECT 1513 FROM dual UNION ALL SELECT 1514 FROM dual UNION ALL SELECT 1515 FROM dual UNION ALL SELECT 1516 FROM dual UNION ALL SELECT 1517 FROM dual UNION ALL SELECT 1518 FROM dual UNION ALL SELECT 1519 FROM dual UNION ALL SELECT 1520 FROM dual UNION ALL SELECT 1521 FROM dual UNION ALL SELECT 1522 FROM dual UNION ALL SELECT 1523 FROM dual UNION ALL SELECT 1524 FROM dual UNION ALL SELECT 1525 FROM dual UNION ALL SELECT 1526 FROM dual UNION ALL SELECT 1527 FROM dual UNION ALL SELECT 1528 FROM dual UNION ALL SELECT 1529 FROM dual UNION ALL SELECT 1530 FROM dual UNION ALL SELECT 1531 FROM dual UNION ALL SELECT 1532 FROM dual UNION ALL SELECT 1533 FROM dual UNION ALL SELECT 1534 FROM dual UNION ALL SELECT 1535 FROM dual UNION ALL SELECT 1536 FROM dual UNION ALL SELECT 1537 FROM dual UNION ALL SELECT 1538 FROM dual UNION ALL SELECT 1539 FROM dual UNION ALL SELECT 1540 FROM dual UNION ALL SELECT 1541 FROM dual UNION ALL SELECT 1542 FROM dual UNION ALL SELECT 1543 FROM dual UNION ALL SELECT 1544 FROM dual UNION ALL SELECT 1545 FROM dual UNION ALL SELECT 1546 FROM dual UNION ALL SELECT 1547 FROM dual UNION ALL SELECT 1548 FROM dual UNION ALL SELECT 1549 FROM dual UNION ALL SELECT 1550 FROM dual UNION ALL SELECT 1551 FROM dual UNION ALL SELECT 1552 FROM dual UNION ALL SELECT 1553 FROM dual UNION ALL SELECT 1554 FROM dual UNION ALL SELECT 1555 FROM dual UNION ALL SELECT 1556 FROM dual UNION ALL SELECT 1557 FROM dual UNION ALL SELECT 1558 FROM dual UNION ALL SELECT 1559 FROM dual UNION ALL SELECT 1560 FROM dual UNION ALL SELECT 1561 FROM dual UNION ALL SELECT 1562 FROM dual UNION ALL SELECT 1563 FROM dual UNION ALL SELECT 1564 FROM dual UNION ALL SELECT 1565 FROM dual UNION ALL SELECT 1566 FROM dual UNION ALL SELECT 1567 FROM dual UNION ALL SELECT 1568 FROM dual UNION ALL SELECT 1569 FROM dual UNION ALL SELECT 1570 FROM dual UNION ALL SELECT 1571 FROM dual UNION ALL SELECT 1572 FROM dual UNION ALL SELECT 1573 FROM dual UNION ALL SELECT 1574 FROM dual UNION ALL SELECT 1575 FROM dual UNION ALL SELECT 1576 FROM dual UNION ALL SELECT 1577 FROM dual UNION ALL SELECT 1578 FROM dual UNION ALL SELECT 1579 FROM dual UNION ALL SELECT 1580 FROM dual UNION ALL SELECT 1581 FROM dual UNION ALL SELECT 1582 FROM dual UNION ALL SELECT 1583 FROM dual UNION ALL SELECT 1584 FROM dual UNION ALL SELECT 1585 FROM dual UNION ALL SELECT 1586 FROM dual UNION ALL SELECT 1587 FROM dual UNION ALL SELECT 1588 FROM dual UNION ALL SELECT 1589 FROM dual UNION ALL SELECT 1590 FROM dual UNION ALL SELECT 1591 FROM dual UNION ALL SELECT 1592 FROM dual UNION ALL SELECT 1593 FROM dual UNION ALL SELECT 1594 FROM dual UNION ALL SELECT 1595 FROM dual UNION ALL SELECT 1596 FROM dual UNION ALL SELECT 1597 FROM dual UNION ALL SELECT 1598 FROM dual UNION ALL SELECT 1599 FROM dual UNION ALL SELECT 1600 FROM dual UNION ALL SELECT 1601 FROM dual UNION ALL SELECT 1602 FROM dual UNION ALL SELECT 1603 FROM dual UNION ALL SELECT 1604 FROM dual UNION ALL SELECT 1605 FROM dual UNION ALL SELECT 1606 FROM dual UNION ALL SELECT 1607 FROM dual UNION ALL SELECT 1608 FROM dual UNION ALL SELECT 1609 FROM dual UNION ALL SELECT 1610 FROM dual UNION ALL SELECT 1611 FROM dual UNION ALL SELECT 1612 FROM dual UNION ALL SELECT 1613 FROM dual UNION ALL SELECT 1614 FROM dual UNION ALL SELECT 1615 FROM dual UNION ALL SELECT 1616 FROM dual UNION ALL SELECT 1617 FROM dual UNION ALL SELECT 1618 FROM dual UNION ALL SELECT 1619 FROM dual UNION ALL SELECT 1620 FROM dual UNION ALL SELECT 1621 FROM dual UNION ALL SELECT 1622 FROM dual UNION ALL SELECT 1623 FROM dual UNION ALL SELECT 1624 FROM dual UNION ALL SELECT 1625 FROM dual UNION ALL SELECT 1626 FROM dual UNION ALL SELECT 1627 FROM dual UNION ALL SELECT 1628 FROM dual UNION ALL SELECT 1629 FROM dual UNION ALL SELECT 1630 FROM dual UNION ALL SELECT 1631 FROM dual UNION ALL SELECT 1632 FROM dual UNION ALL SELECT 1633 FROM dual UNION ALL SELECT 1634 FROM dual UNION ALL SELECT 1635 FROM dual UNION ALL SELECT 1636 FROM dual UNION ALL SELECT 1637 FROM dual UNION ALL SELECT 1638 FROM dual UNION ALL SELECT 1639 FROM dual UNION ALL SELECT 1640 FROM dual UNION ALL SELECT 1641 FROM dual UNION ALL SELECT 1642 FROM dual UNION ALL SELECT 1643 FROM dual UNION ALL SELECT 1644 FROM dual UNION ALL SELECT 1645 FROM dual UNION ALL SELECT 1646 FROM dual UNION ALL SELECT 1647 FROM dual UNION ALL SELECT 1648 FROM dual UNION ALL SELECT 1649 FROM dual UNION ALL SELECT 1650 FROM dual UNION ALL SELECT 1651 FROM dual UNION ALL SELECT 1652 FROM dual UNION ALL SELECT 1653 FROM dual UNION ALL SELECT 1654 FROM dual UNION ALL SELECT 1655 FROM dual UNION ALL SELECT 1656 FROM dual UNION ALL SELECT 1657 FROM dual UNION ALL SELECT 1658 FROM dual UNION ALL SELECT 1659 FROM dual UNION ALL SELECT 1660 FROM dual UNION ALL SELECT 1661 FROM dual UNION ALL SELECT 1662 FROM dual UNION ALL SELECT 1663 FROM dual UNION ALL SELECT 1664 FROM dual UNION ALL SELECT 1665 FROM dual UNION ALL SELECT 1666 FROM dual UNION ALL SELECT 1667 FROM dual UNION ALL SELECT 1668 FROM dual UNION ALL SELECT 1669 FROM dual UNION ALL SELECT 1670 FROM dual UNION ALL SELECT 1671 FROM dual UNION ALL SELECT 1672 FROM dual UNION ALL SELECT 1673 FROM dual UNION ALL SELECT 1674 FROM dual UNION ALL SELECT 1675 FROM dual UNION ALL SELECT 1676 FROM dual UNION ALL SELECT 1677 FROM dual UNION ALL SELECT 1678 FROM dual UNION ALL SELECT 1679 FROM dual UNION ALL SELECT 1680 FROM dual UNION ALL SELECT 1681 FROM dual UNION ALL SELECT 1682 FROM dual UNION ALL SELECT 1683 FROM dual UNION ALL SELECT 1684 FROM dual UNION ALL SELECT 1685 FROM dual UNION ALL SELECT 1686 FROM dual UNION ALL SELECT 1687 FROM dual UNION ALL SELECT 1688 FROM dual UNION ALL SELECT 1689 FROM dual UNION ALL SELECT 1690 FROM dual UNION ALL SELECT 1691 FROM dual UNION ALL SELECT 1692 FROM dual UNION ALL SELECT 1693 FROM dual UNION ALL SELECT 1694 FROM dual UNION ALL SELECT 1695 FROM dual UNION ALL SELECT 1696 FROM dual UNION ALL SELECT 1697 FROM dual UNION ALL SELECT 1698 FROM dual UNION ALL SELECT 1699 FROM dual UNION ALL SELECT 1700 FROM dual UNION ALL SELECT 1701 FROM dual UNION ALL SELECT 1702 FROM dual UNION ALL SELECT 1703 FROM dual UNION ALL SELECT 1704 FROM dual UNION ALL SELECT 1705 FROM dual UNION ALL SELECT 1706 FROM dual UNION ALL SELECT 1707 FROM dual UNION ALL SELECT 1708 FROM dual UNION ALL SELECT 1709 FROM dual UNION ALL SELECT 1710 FROM dual UNION ALL SELECT 1711 FROM dual UNION ALL SELECT 1712 FROM dual UNION ALL SELECT 1713 FROM dual UNION ALL SELECT 1714 FROM dual UNION ALL SELECT 1715 FROM dual UNION ALL SELECT 1716 FROM dual UNION ALL SELECT 1717 FROM dual UNION ALL SELECT 1718 FROM dual UNION ALL SELECT 1719 FROM dual UNION ALL SELECT 1720 FROM dual UNION ALL SELECT 1721 FROM dual UNION ALL SELECT 1722 FROM dual UNION ALL SELECT 1723 FROM dual UNION ALL SELECT 1724 FROM dual UNION ALL SELECT 1725 FROM dual UNION ALL SELECT 1726 FROM dual UNION ALL SELECT 1727 FROM dual UNION ALL SELECT 1728 FROM dual UNION ALL SELECT 1729 FROM dual UNION ALL SELECT 1730 FROM dual UNION ALL SELECT 1731 FROM dual UNION ALL SELECT 1732 FROM dual UNION ALL SELECT 1733 FROM dual UNION ALL SELECT 1734 FROM dual UNION ALL SELECT 1735 FROM dual UNION ALL SELECT 1736 FROM dual UNION ALL SELECT 1737 FROM dual UNION ALL SELECT 1738 FROM dual UNION ALL SELECT 1739 FROM dual UNION ALL SELECT 1740 FROM dual UNION ALL SELECT 1741 FROM dual UNION ALL SELECT 1742 FROM dual UNION ALL SELECT 1743 FROM dual UNION ALL SELECT 1744 FROM dual UNION ALL SELECT 1745 FROM dual UNION ALL SELECT 1746 FROM dual UNION ALL SELECT 1747 FROM dual UNION ALL SELECT 1748 FROM dual UNION ALL SELECT 1749 FROM dual UNION ALL SELECT 1750 FROM dual UNION ALL SELECT 1751 FROM dual UNION ALL SELECT 1752 FROM dual UNION ALL SELECT 1753 FROM dual UNION ALL SELECT 1754 FROM dual UNION ALL SELECT 1755 FROM dual UNION ALL SELECT 1756 FROM dual UNION ALL SELECT 1757 FROM dual UNION ALL SELECT 1758 FROM dual UNION ALL SELECT 1759 FROM dual UNION ALL SELECT 1760 FROM dual UNION ALL SELECT 1761 FROM dual UNION ALL SELECT 1762 FROM dual UNION ALL SELECT 1763 FROM dual UNION ALL SELECT 1764 FROM dual UNION ALL SELECT 1765 FROM dual UNION ALL SELECT 1766 FROM dual UNION ALL SELECT 1767 FROM dual UNION ALL SELECT 1768 FROM dual UNION ALL SELECT 1769 FROM dual UNION ALL SELECT 1770 FROM dual UNION ALL SELECT 1771 FROM dual UNION ALL SELECT 1772 FROM dual UNION ALL SELECT 1773 FROM dual UNION ALL SELECT 1774 FROM dual UNION ALL SELECT 1775 FROM dual UNION ALL SELECT 1776 FROM dual UNION ALL SELECT 1777 FROM dual UNION ALL SELECT 1778 FROM dual UNION ALL SELECT 1779 FROM dual UNION ALL SELECT 1780 FROM dual UNION ALL SELECT 1781 FROM dual UNION ALL SELECT 1782 FROM dual UNION ALL SELECT 1783 FROM dual UNION ALL SELECT 1784 FROM dual UNION ALL SELECT 1785 FROM dual UNION ALL SELECT 1786 FROM dual UNION ALL SELECT 1787 FROM dual UNION ALL SELECT 1788 FROM dual UNION ALL SELECT 1789 FROM dual UNION ALL SELECT 1790 FROM dual UNION ALL SELECT 1791 FROM dual UNION ALL SELECT 1792 FROM dual UNION ALL SELECT 1793 FROM dual UNION ALL SELECT 1794 FROM dual UNION ALL SELECT 1795 FROM dual UNION ALL SELECT 1796 FROM dual UNION ALL SELECT 1797 FROM dual UNION ALL SELECT 1798 FROM dual UNION ALL SELECT 1799 FROM dual UNION ALL SELECT 1800 FROM dual UNION ALL SELECT 1801 FROM dual UNION ALL SELECT 1802 FROM dual UNION ALL SELECT 1803 FROM dual UNION ALL SELECT 1804 FROM dual UNION ALL SELECT 1805 FROM dual UNION ALL SELECT 1806 FROM dual UNION ALL SELECT 1807 FROM dual UNION ALL SELECT 1808 FROM dual UNION ALL SELECT 1809 FROM dual UNION ALL SELECT 1810 FROM dual UNION ALL SELECT 1811 FROM dual UNION ALL SELECT 1812 FROM dual UNION ALL SELECT 1813 FROM dual UNION ALL SELECT 1814 FROM dual UNION ALL SELECT 1815 FROM dual UNION ALL SELECT 1816 FROM dual UNION ALL SELECT 1817 FROM dual UNION ALL SELECT 1818 FROM dual UNION ALL SELECT 1819 FROM dual UNION ALL SELECT 1820 FROM dual UNION ALL SELECT 1821 FROM dual UNION ALL SELECT 1822 FROM dual UNION ALL SELECT 1823 FROM dual UNION ALL SELECT 1824 FROM dual UNION ALL SELECT 1825 FROM dual UNION ALL SELECT 1826 FROM dual UNION ALL SELECT 1827 FROM dual UNION ALL SELECT 1828 FROM dual UNION ALL SELECT 1829 FROM dual UNION ALL SELECT 1830 FROM dual UNION ALL SELECT 1831 FROM dual UNION ALL SELECT 1832 FROM dual UNION ALL SELECT 1833 FROM dual UNION ALL SELECT 1834 FROM dual UNION ALL SELECT 1835 FROM dual UNION ALL SELECT 1836 FROM dual UNION ALL SELECT 1837 FROM dual UNION ALL SELECT 1838 FROM dual UNION ALL SELECT 1839 FROM dual UNION ALL SELECT 1840 FROM dual UNION ALL SELECT 1841 FROM dual UNION ALL SELECT 1842 FROM dual UNION ALL SELECT 1843 FROM dual UNION ALL SELECT 1844 FROM dual UNION ALL SELECT 1845 FROM dual UNION ALL SELECT 1846 FROM dual UNION ALL SELECT 1847 FROM dual UNION ALL SELECT 1848 FROM dual UNION ALL SELECT 1849 FROM dual UNION ALL SELECT 1850 FROM dual UNION ALL SELECT 1851 FROM dual UNION ALL SELECT 1852 FROM dual UNION ALL SELECT 1853 FROM dual UNION ALL SELECT 1854 FROM dual UNION ALL SELECT 1855 FROM dual UNION ALL SELECT 1856 FROM dual UNION ALL SELECT 1857 FROM dual UNION ALL SELECT 1858 FROM dual UNION ALL SELECT 1859 FROM dual UNION ALL SELECT 1860 FROM dual UNION ALL SELECT 1861 FROM dual UNION ALL SELECT 1862 FROM dual UNION ALL SELECT 1863 FROM dual UNION ALL SELECT 1864 FROM dual UNION ALL SELECT 1865 FROM dual UNION ALL SELECT 1866 FROM dual UNION ALL SELECT 1867 FROM dual UNION ALL SELECT 1868 FROM dual UNION ALL SELECT 1869 FROM dual UNION ALL SELECT 1870 FROM dual UNION ALL SELECT 1871 FROM dual UNION ALL SELECT 1872 FROM dual UNION ALL SELECT 1873 FROM dual UNION ALL SELECT 1874 FROM dual UNION ALL SELECT 1875 FROM dual UNION ALL SELECT 1876 FROM dual UNION ALL SELECT 1877 FROM dual UNION ALL SELECT 1878 FROM dual UNION ALL SELECT 1879 FROM dual UNION ALL SELECT 1880 FROM dual UNION ALL SELECT 1881 FROM dual UNION ALL SELECT 1882 FROM dual UNION ALL SELECT 1883 FROM dual UNION ALL SELECT 1884 FROM dual UNION ALL SELECT 1885 FROM dual UNION ALL SELECT 1886 FROM dual UNION ALL SELECT 1887 FROM dual UNION ALL SELECT 1888 FROM dual UNION ALL SELECT 1889 FROM dual UNION ALL SELECT 1890 FROM dual UNION ALL SELECT 1891 FROM dual UNION ALL SELECT 1892 FROM dual UNION ALL SELECT 1893 FROM dual UNION ALL SELECT 1894 FROM dual UNION ALL SELECT 1895 FROM dual UNION ALL SELECT 1896 FROM dual UNION ALL SELECT 1897 FROM dual UNION ALL SELECT 1898 FROM dual UNION ALL SELECT 1899 FROM dual UNION ALL SELECT 1900 FROM dual UNION ALL SELECT 1901 FROM dual UNION ALL SELECT 1902 FROM dual UNION ALL SELECT 1903 FROM dual UNION ALL SELECT 1904 FROM dual UNION ALL SELECT 1905 FROM dual UNION ALL SELECT 1906 FROM dual UNION ALL SELECT 1907 FROM dual UNION ALL SELECT 1908 FROM dual UNION ALL SELECT 1909 FROM dual UNION ALL SELECT 1910 FROM dual UNION ALL SELECT 1911 FROM dual UNION ALL SELECT 1912 FROM dual UNION ALL SELECT 1913 FROM dual UNION ALL SELECT 1914 FROM dual UNION ALL SELECT 1915 FROM dual UNION ALL SELECT 1916 FROM dual UNION ALL SELECT 1917 FROM dual UNION ALL SELECT 1918 FROM dual UNION ALL SELECT 1919 FROM dual UNION ALL SELECT 1920 FROM dual UNION ALL SELECT 1921 FROM dual UNION ALL SELECT 1922 FROM dual UNION ALL SELECT 1923 FROM dual UNION ALL SELECT 1924 FROM dual UNION ALL SELECT 1925 FROM dual UNION ALL SELECT 1926 FROM dual UNION ALL SELECT 1927 FROM dual UNION ALL SELECT 1928 FROM dual UNION ALL SELECT 1929 FROM dual UNION ALL SELECT 1930 FROM dual UNION ALL SELECT 1931 FROM dual UNION ALL SELECT 1932 FROM dual UNION ALL SELECT 1933 FROM dual UNION ALL SELECT 1934 FROM dual UNION ALL SELECT 1935 FROM dual UNION ALL SELECT 1936 FROM dual UNION ALL SELECT 1937 FROM dual UNION ALL SELECT 1938 FROM dual UNION ALL SELECT 1939 FROM dual UNION ALL SELECT 1940 FROM dual UNION ALL SELECT 1941 FROM dual UNION ALL SELECT 1942 FROM dual UNION ALL SELECT 1943 FROM dual UNION ALL SELECT 1944 FROM dual UNION ALL SELECT 1945 FROM dual UNION ALL SELECT 1946 FROM dual UNION ALL SELECT 1947 FROM dual UNION ALL SELECT 1948 FROM dual UNION ALL SELECT 1949 FROM dual UNION ALL SELECT 1950 FROM dual UNION ALL SELECT 1951 FROM dual UNION ALL SELECT 1952 FROM dual UNION ALL SELECT 1953 FROM dual UNION ALL SELECT 1954 FROM dual UNION ALL SELECT 1955 FROM dual UNION ALL SELECT 1956 FROM dual UNION ALL SELECT 1957 FROM dual UNION ALL SELECT 1958 FROM dual UNION ALL SELECT 1959 FROM dual UNION ALL SELECT 1960 FROM dual UNION ALL SELECT 1961 FROM dual UNION ALL SELECT 1962 FROM dual UNION ALL SELECT 1963 FROM dual UNION ALL SELECT 1964 FROM dual UNION ALL SELECT 1965 FROM dual UNION ALL SELECT 1966 FROM dual UNION ALL SELECT 1967 FROM dual UNION ALL SELECT 1968 FROM dual UNION ALL SELECT 1969 FROM dual UNION ALL SELECT 1970 FROM dual UNION ALL SELECT 1971 FROM dual UNION ALL SELECT 1972 FROM dual UNION ALL SELECT 1973 FROM dual UNION ALL SELECT 1974 FROM dual UNION ALL SELECT 1975 FROM dual UNION ALL SELECT 1976 FROM dual UNION ALL SELECT 1977 FROM dual UNION ALL SELECT 1978 FROM dual UNION ALL SELECT 1979 FROM dual UNION ALL SELECT 1980 FROM dual UNION ALL SELECT 1981 FROM dual UNION ALL SELECT 1982 FROM dual UNION ALL SELECT 1983 FROM dual UNION ALL SELECT 1984 FROM dual UNION ALL SELECT 1985 FROM dual UNION ALL SELECT 1986 FROM dual UNION ALL SELECT 1987 FROM dual UNION ALL SELECT 1988 FROM dual UNION ALL SELECT 1989 FROM dual UNION ALL SELECT 1990 FROM dual UNION ALL SELECT 1991 FROM dual UNION ALL SELECT 1992 FROM dual UNION ALL SELECT 1993 FROM dual UNION ALL SELECT 1994 FROM dual UNION ALL SELECT 1995 FROM dual UNION ALL SELECT 1996 FROM dual UNION ALL SELECT 1997 FROM dual UNION ALL SELECT 1998 FROM dual UNION ALL SELECT 1999 FROM dual UNION ALL SELECT 2000 FROM dual ) ) LOOP NULL; END LOOP; END LOOP; dbms_output.put_line('Run ' || r ||', Statement 2 : ' || (SYSTIMESTAMP – v_ts)); dbms_output.put_line(''); END LOOP; dbms_output.put_line(''); dbms_output.put_line('Copyright Data Geekery GmbH'); dbms_output.put_line('https://www.jooq.org/benchmark&#39;); END; / view raw oracle-in-vs-union-all.sql hosted with ❤ by GitHub Results on my machine:
        Run 1, Statement 1 : +000000000 00:00:00.099910000
        Run 1, Statement 2 : +000000000 00:00:06.192357000
        
        Run 2, Statement 1 : +000000000 00:00:00.021193000
        Run 2, Statement 2 : +000000000 00:00:00.150208000
        
        Run 3, Statement 1 : +000000000 00:00:00.023189000
        Run 3, Statement 2 : +000000000 00:00:00.143014000
        
        Run 4, Statement 1 : +000000000 00:00:00.021395000
        Run 4, Statement 2 : +000000000 00:00:00.150450000
        
        Run 5, Statement 1 : +000000000 00:00:00.020566000
        Run 5, Statement 2 : +000000000 00:00:00.158801000
        
        Your solution is much worse than the OR-connected IN list. But anyway, at some point, both solutions suck as an array-based (or even temp table based) solution will be better: https://blog.jooq.org/2017/03/30/sql-in-predicate-with-in-list-or-with-array-which-is-faster
      2. I tested both queries with a simple JDBC program, the result is vary. sometimes UNION ALL is faster than OR.

        import java.sql.*;
        import java.util.stream.Collectors;
        import java.util.stream.IntStream;
        
        public class OracleINPerf {
        
            private static final String URL = "";
            private static final String USER = "";
            private static final String PASSWORD = "";
        
            private static final int ITERATION = 5;
        
            public static void main(String[] args) throws SQLException {
                try (Connection conn = getConnection()) {
                    run("OR", conn, buildORSql());
                    System.out.println();
                    run("UNION", conn, buildUnionSql());
                }
            }
        
            private static void run(String name, Connection conn, String sql) throws SQLException {
                long total = 0L;
                for (int i = 0; i  i.toString())
                                     .collect(Collectors.joining(", "))
                        )
                        .append(") OR ACTOR_ID IN(")
                        .append(
                            IntStream.rangeClosed(1001, 2000)
                                     .boxed()
                                     .map(i -> i.toString())
                                     .collect(Collectors.joining(", "))
                        )
                        .append(')')
                        .toString();
            }
        
            private static String buildUnionSql() {
                return new StringBuilder()
                        .append("SELECT * FROM ACTOR WHERE ACTOR_ID IN(")
                        .append(
                            IntStream.rangeClosed(1, 2000)
                                     .boxed()
                                     .map(i -> "SELECT " + i + " FROM DUAL")
                                     .collect(Collectors.joining(" UNION ALL "))
                        )
                        .append(')')
                        .toString();
            }
        
            private static Connection getConnection() throws SQLException {
                return DriverManager.getConnection(URL, USER, PASSWORD);
            }
        }
        
        1. Hmm, what am I looking at? Seems that some code got lost? Do note that the comment forms accept HTML, so you need to properly escape your < as &lt;

        2. Also, always make sure you run your benchmarks several times. You now ran the OR query first, which means that it gets all the penalty of warming up the buffer caches and other things. Clearly, the second run gets an unfair benefit from being second. Compare this to my benchmark results, where both initial runs had a small penalty, which is why the benchmark is run 5 times.

Leave a Reply to igorracic Cancel reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.