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

Bisakah kueri SQL Oracle mengeksekusi kueri string yang dipilih dari tabel?

Secara umum, ini bukan desain yang sangat bagus-- menyimpan SQL dalam tabel dan menjalankannya secara dinamis menyebabkan segala macam masalah keamanan dan pemeliharaan.

Mungkin saja (meskipun sudah terlambat pada hari Jumat yang dimulai terlalu dini bagi saya untuk mencoba mencari tahu) untuk melakukan kueri XML yang sangat keren di sepanjang baris kueri ini yang menjalankan hitungan(*) terhadap setiap tabel dalam skema yang akan melakukan ini semua dalam satu permintaan.

Namun, untuk sebagian besar programmer, pendekatan yang lebih sederhana adalah mengulang kueri, menjalankannya satu per satu, dan menyimpan hasilnya di suatu tempat. Kemungkinan variabel lokal akan ditambahkan ke kumpulan hitungan, misalnya.

FOR q IN (SELECT sql_text FROM query_table)
LOOP
  EXECUTE IMMEDIATE 'SELECT COUNT(*) FROM (' || q.sql_text || ')'
     INTO some_local_variable;
  <<do something with the local variable>>
END LOOP;

Karena Anda mencoba membuat tampilan, Anda bisa mengambil logika ini dan memasukkannya ke dalam fungsi tabel pipa. Anda akan melakukan PIPE ROW untuk mengembalikan data dalam loop. Tampilan Anda kemudian dapat dibuat di atas fungsi tabel pipelined.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana cara menambahkan kolom bukan nol dan batasan centang dalam satu baris di Oracle 11g?

  2. Bagaimana Mendapatkan File Dari BLOB di Oracle?

  3. Bagaimana cara meneruskan Daftar dari Java ke Oracle Procedure?

  4. Hasil konversi tanggal SQL ke parameter model format angka tidak valid.

  5. Bagaimana Cara Memasukkan File di Database Oracle?