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

Menjalankan kueri Dynamic Sql di Oracle

Dinamis String harus diapit di dalam 'Single Quotes'

OPEN OUT_CUR FOR
     'SELECT * FROM MYTABLE WHERE ID '|| DYN_QUERY;

EXECUTE IMMEDIATE memungkinkan hasil Multi baris, jika Anda menggunakan BULK COLLECT

Contoh:

DECLARE
  TYPE myarray IS TABLE OF VARCHAR2(100);
  v_array myarray;
BEGIN
  EXECUTE IMMEDIATE 'select ''x'' from dual union all select ''y'' from dual'
    BULK COLLECT INTO v_array;

  --Or you could use the alternative quoting mechanism to avoid doubling quotation marks.
  --EXECUTE IMMEDIATE q'[select 'x' from dual union all select 'y' from dual]'
  --  BULK COLLECT INTO v_array;

  FOR i IN 1..v_array.count
  LOOP
    DBMS_OUTPUT.PUT_LINE(v_array(i));
  END LOOP;
END;

EXECUTE IMMEDIATE menggunakan variabel ikat;

String := 'SELECT * FROM EMP WHERE name = :name AND age = :age AND :name <> ''Mahesh''';

EXECUTE IMMEDIATE String USING 'Mahi',21,'Mahi';
<OR>
EXECUTE IMMEDIATE String USING proc_variable1,proc_variable2,proc_variable1;



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. fungsi agregat khusus yang ditentukan pengguna menggunakan plsql

  2. EKSPOR SEBAGAI PERNYATAAN MASUKKAN:Tetapi dalam SQL Plus, baris menimpa 2500 karakter!

  3. cara membuat rencana penjelasan untuk seluruh prosedur tersimpan

  4. Apakah ada cara untuk mengakses prosedur plsql pribadi untuk tujuan pengujian?

  5. cara meneruskan koneksi yang dibuat pengguna ke hibernasi