Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

BATAS PENGUMPULAN MASSAL dalam EKSEKUSI SEGERA

Tampaknya sintaks EXECUTE IMMEDIATE tidak mengizinkan LIMIT dalam klausa pengumpulan massal

http://docs.Oracle.com/cd/E11882_01/appdev.112/e25519/executeimmediate_statement.htm#CJACGJJG


bulk_collect_into_clause
http://docs.oracle .com/cd/E11882_01/appdev.112/e25519/returninginto_clause.htm#CJAIAGHJ

Anda dapat menggunakan kursor dan perintah FETCH .. LIMIT bersamaan dengan perintah OPEN..FOR,
dengan cara ini:

DECLARE
  ....
  cur sys_refcursor;
BEGIN
  v_query := 'SELECT level AS x FROM dual CONNECT BY LEVEL <=10';
  OPEN cur FOR v_query;
  LOOP
     FETCH cur BULK COLLECT INTO collection LIMIT 3;
     EXIT WHEN collection.COUNT = 0;

     /* Process data from `collection` */

  END LOOP;
  CLOSE cur;
END;

Contoh:

DECLARE
  TYPE col_typ IS table of NUMBER;
  collection col_typ;
  v_query varchar2(3000); 
  cur sys_refcursor;
  i int := 0;
  x int;
BEGIN
  v_query := 'SELECT level AS x FROM dual CONNECT BY LEVEL <=10';

  OPEN cur FOR v_query;
  LOOP
     FETCH cur BULK COLLECT INTO collection LIMIT 3;
     EXIT WHEN collection.COUNT = 0;

     /* Process data from `collection` */
     i := i + 1;
     DBMS_OUTPUT.PUT_LINE('==== Batch nbr #' || i );
     FOR x IN 1 .. collection.COUNT LOOP
       DBMS_OUTPUT.PUT_LINE( collection( x ) );
     END LOOP;
  END LOOP;
  CLOSE cur;
END;
/

Hasil:

==== Batch nbr #1
1
2
3
==== Batch nbr #2
4
5
6
==== Batch nbr #3
7
8
9
==== Batch nbr #4
10


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Menggunakan fungsi di mana klausa dengan parameter clob

  2. Bagaimana cara melihat hasil/output refkursor di Oracle SQL Developer?

  3. Buat formulir Apex dengan banyak halaman

  4. Kapan Anda harus menggunakan prosedur tersimpan java dengan database Oracle ... apa kekurangannya?

  5. Oracle 11g:Default ke nilai statis saat kueri tidak menghasilkan apa-apa