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

Permintaan dinamis PLSQL

SQL Dinamis tidak dapat melihat variabel PL/SQL Anda:Anda harus memberikan string yang dapat dieksekusi dalam lingkup mesin SQL. Jadi, Anda perlu menggabungkan nama tabel dengan teks boilerplate pernyataan:

query1 := 'SELECT max(c)  FROM ' || variable_name;

Anda juga perlu mengembalikan hasil kueri ke dalam variabel.

Begini cara kerjanya (saya telah menghapus beberapa kode yang tidak perlu dari contoh Anda):

DECLARE    
 c_table VARCHAR2(40);
 c_obj VARCHAR2(20);
BEGIN
   for lrec in ( select a as tab_name from A )
   LOOP
      EXECUTE IMMEDIATE 'SELECT max(object_ref)  FROM ' || lrec.tab_name 
           into c_obj ;
      dbms_output.put_line('Maximum value: '|| lrec.tab_name
           || '='|| c_obj);
   END LOOP;
END;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Java Multicast Time To Live selalu 0

  2. Oracle self join dimulai dengan nilai minimum (yearmonths) untuk setiap partisi

  3. Oracle raise_application_error nomor kesalahan praktik terbaik

  4. Apa perbedaan antara array bersarang dan array asosiatif?

  5. Cara Mengekspor Hasil Kueri ke File CSV di SQL Developer (Oracle)