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

Pemicu tidak valid di Oracle

Setiap kali kami menerapkan perubahan ke objek database, kode apa pun yang bergantung padanya akan dibatalkan. Ini memengaruhi pemicu, tampilan, dan prosedur tersimpan. Namun, saat berikutnya sesuatu memanggil kode itu, database akan mengkompilasi ulang secara otomatis.

Jadi kita tidak perlu khawatir tentang ini, kan? Ya, sampai titik tertentu. Masalahnya, pembatalan pemicu (atau apa pun) adalah tanda bagi kami bahwa perubahan telah dibuat yang dapat memengaruhi pengoperasian pemicu itu, yang mungkin memiliki efek samping. Efek samping yang paling jelas adalah pemicunya tidak dapat dikompilasi. Secara lebih halus, pemicu dikompilasi tetapi gagal selama operasi.

Oleh karena itu, merupakan ide yang baik untuk memaksa kompilasi ulang pemicu di lingkungan pengembangan, untuk memastikan bahwa perubahan kami tidak merusak apa pun secara mendasar. Namun kami dapat melewati langkah itu saat menerapkan perubahan dalam produksi, karena kami sangat yakin bahwa semuanya akan dikompilasi ulang sesuai permintaan. Tergantung nyali kita :)

Oracle menyediakan mekanisme untuk mengkompilasi ulang semua objek yang tidak valid dalam skema secara otomatis.

  • Yang paling mudah adalah menggunakan DBMS_UTILITY.COMPILE_SCHEMA() . Tapi ini sudah cerdik sejak 8i (karena dukungan untuk Java Stored Procedures memperkenalkan potensi dependensi melingkar) dan tidak lagi dijamin untuk mengkompilasi semua objek dengan sukses pertama kali.

  • Di 9i Oracle memberi kami skrip $ORACLE_HOME/rdbms/admin/utlrp.sql yang mengkompilasi ulang hal-hal. Sayangnya itu membutuhkan akses SYSDBA.

  • Dalam 10g mereka menambahkan paket UTL_RECOMP, yang pada dasarnya melakukan semua yang dilakukan skrip itu. Ini adalah pendekatan yang disarankan untuk mengkompilasi ulang sejumlah besar objek. Sayangnya itu juga membutuhkan akses SYSDBA. Cari tahu lebih lanjut .

Di 11g Oracle memperkenalkan manajemen ketergantungan yang halus. Ini berarti bahwa perubahan pada tabel dievaluasi pada perincian yang lebih baik (pada dasarnya tingkat kolom daripada tingkat tabel), dan hanya objek yang secara langsung terpengaruh oleh perubahan yang terpengaruh. Cari tahu lebih lanjut .



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Membuat sha1-hash dari baris di Oracle

  2. Cara Mengeksekusi PL SQL Block di Oracle

  3. Memformat Kolom Tanggal di javaFX TableView untuk Data yang diambil dari Oracle DB

  4. Apakah Tomcat menggunakan versi cache dari modul pl/sql?

  5. Oracle Julian hari tahun