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

Apakah ada cara untuk menyiram output dari PL/SQL di Oracle?

Tidak juga. Cara kerja DBMS_OUTPUT adalah sebagai berikut:Blok PL/SQL Anda dijalankan di server database tanpa interaksi dengan klien. Jadi ketika Anda memanggil PUT_LINE, itu hanya menempatkan teks itu ke dalam buffer di memori di server. Ketika blok PL/SQL Anda selesai, kontrol dikembalikan ke klien (saya mengasumsikan SQLPlus dalam kasus ini); pada saat itu klien mengeluarkan teks dari buffer dengan memanggil GET_LINE, dan menampilkannya.

Jadi satu-satunya cara Anda dapat membuat output lebih sering muncul di file log adalah dengan memecah blok PL/SQL yang besar menjadi beberapa blok yang lebih kecil, sehingga kontrol dikembalikan ke klien lebih sering. Ini mungkin tidak praktis tergantung pada apa yang dilakukan kode Anda.

Alternatif lain adalah menggunakan UTL_FILE untuk menulis ke file teks, yang dapat dihapus kapan pun Anda mau, atau menggunakan prosedur transaksi-otonom untuk menyisipkan pernyataan debug ke dalam tabel database dan melakukan setelah setiap pernyataan.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. mengambil parameter dari prosedur tersimpan?

  2. Oracle.DataAccess tidak tersedia untuk seleksi di Visual Studio 2013

  3. LN() Fungsi di Oracle

  4. Oracle pilih untuk perilaku pembaruan

  5. Urutan hibernasi di Oracle, @GeneratedValue(strategy =GenerationType.AUTO)