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

Mengapa ddl statis tidak diizinkan di PL/SQL?

Jawabannya adalah PL/SQL tidak mendukung polimorfisme dinamis. itu hanya mendukung polimorfisme statis karena

Semua PL/SQL menghasilkan "DIANA" -> Descriptive Intermediate Attributed Notation for Ada , bahasa perantara berstruktur pohon. DIANA digunakan secara internal oleh kompiler.

Pada waktu kompilasi, kode sumber PL/SQL diterjemahkan ke dalam kode sistem dan menghasilkan DIANA yang sesuai. Sekarang pikirkan jika ada pernyataan DDL seperti membuat pernyataan tabel yang pada waktu kompilasi tidak ada, itu akan dibuat setelah menjalankan program. bagaimana mesin PL/SQL Anda menghasilkan DIANA ????

DIANA memainkan peran penting dalam PL/SQL untuk memeriksa/memvalidasi sub program tersebut. ini diperlukan karena seperti yang kita ketahui bahwa sub-program dapat menggunakan objek database seperti Tabel, Tampilan, Sinonim, atau proses tersimpan lainnya. mungkin saja objek tersebut telah berubah/dihapus/dijatuhkan saat Anda menjalankan program berikutnya. Misalnya:seseorang mungkin telah menjatuhkan tabel, proc atau fungsi yang disimpan mungkin telah berubah.

Itulah mengapa umumnya PL/SQL digunakan untuk memanipulasi data dalam struktur database, tetapi tidak untuk memanipulasi struktur tersebut.

tetapi ada cara untuk memanipulasi menggunakan SQL dinamis dan paket DBMS_SQL tetapi metodologi ini sekali lagi harus digunakan dengan hati-hati. Misalnya jika Anda membuat Tabel, Anda harus memeriksa terlebih dahulu apakah tabel ini sudah ada atau belum menggunakan tampilan kamus data.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tutorial Oracle sql :Membatasi kumpulan data

  2. String panjang di N-Hibernate dengan Oracle menyebabkan kesalahan

  3. Bagaimana cara melihat hasil/output refkursor di Oracle SQL Developer?

  4. Akses layanan Web dari prosedur tersimpan Oracle

  5. Cara Menginstal Pengembang SQL di Mac