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

bagaimana cara melewatkan nama tabel sebagai parameter ke prosedur tersimpan?

Anda tidak dapat membuat %ROWTYPE variabel untuk tabel yang tidak dikenal dan Anda tidak dapat merujuk ke nama kolom secara statis jika Anda tidak mengetahui nama tabel pada waktu kompilasi.

Anda dapat menggunakan paket dbms_sql untuk menangani pernyataan SQL yang sepenuhnya dinamis. Anda harus menyiapkan pernyataan SQL, menjelaskan kolom untuk mengetahui jumlah kolom dan tipe datanya, mengikat variabel yang sesuai, lalu mengambil data. Ini adalah cara penulisan kode yang jauh lebih rumit daripada contoh yang Anda posting, tetapi ini memberi Anda fleksibilitas yang luar biasa.

Ada beberapa contoh penggunaan paket dbms_sql dalam dokumentasi yang saya tautkan. Anda mungkin juga ingin memeriksa fungsi dump_csv Tom Kyte yang menulis hasil kueri arbitrer ke file CSV menggunakan UTL_FILE . Jika Anda benar-benar ingin menulis data ke DBMS_OUTPUT , Anda cukup mengganti UTL_FILE panggilan dengan DBMS_OUTPUT . Tapi saya cukup yakin Anda ingin melakukan sesuatu yang lebih berguna daripada hanya menulis data ke DBMS_OUTPUT buffer sehingga prosedur Tom mungkin lebih mendekati apa yang sebenarnya ingin Anda capai.




  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 mendapatkan konten tekstual dari BLOB di Oracle SQL

  2. Bagaimana cara terbaik mengelola nilai pencarian historis dalam database?

  3. Oracle PL/SQL - tip untuk output langsung/pencetakan konsol

  4. Cara membuat tampilan di oracle

  5. Menghubungkan ke database Oracle menggunakan SQLAlchemy