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

meneruskan nama tabel dan kolom secara dinamis menggunakan variabel bind

Nama tabel dan kolom tidak dapat dilewatkan sebagai variabel pengikat, tidak. Inti dari variabel bind adalah bahwa Oracle dapat menghasilkan rencana kueri satu kali untuk pernyataan tersebut dan kemudian mengeksekusinya berkali-kali dengan nilai variabel bind yang berbeda. Jika pengoptimal tidak mengetahui tabel apa yang sedang diakses atau kolom apa yang dipilih dan difilter, pengoptimal tidak dapat membuat rencana kueri.

Jika kekhawatiran Anda berkaitan dengan serangan injeksi SQL, dan dengan asumsi bahwa SQL dinamis sebenarnya diperlukan (sebagian besar waktu, kebutuhan untuk menggunakan SQL dinamis menyiratkan masalah dengan model data), Anda dapat menggunakan DBMS_ASSERT paket untuk memvalidasi bahwa nama tabel dan nama kolom tidak berisi SQL yang disematkan.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Apakah SQLFiddle rusak? Kesalahan untuk Oracle, SQL Server, ...?

  2. Bagaimana menghindari substitusi variabel di Oracle SQL Developer dengan 'trinidad &tobago'

  3. Keluaran skrip Pengembang SQL memotong lebar sys_refcursor

  4. Driver ODP.NET terkelola tidak muncul di dialog Sumber Data

  5. Format TANGGAL default Oracle