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

KAPAN SAJA SQLERROR tidak pernah berfungsi

Pertimbangkan cuplikan umum di bawah ini:

$ cmd1 < <(cmd2) # Or cmd1 <(cmd2)
$ echo $?

Di sini, $? diatur ke status keluar cmd1 . Status keluar dari cmd2 hilang.

Dalam kasus Anda, sqlplus kebetulan cmd2. Jadi, status keluar dari perintah itu tidak ditangkap di $? .

Anda bisa mencoba ini;

$ sqlplus ... | cmd1
$ status=(${PIPESTATUS[@]})
$ for i in ${status[@]}; do
>     [ $i -ne 0 ] && echo Exited with $i
> done
$ echo Exited with 0

Perhatikan bahwa jika cmd1 adalah struktur yang kompleks (seperti while read misalnya) apa pun yang Anda jalankan di loop while itu akan dijalankan dalam subkulit &lingkungan apa pun (variabel/pwd) yang diubah akan hilang.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cara Menambahkan Indikator Meridiem (AM/PM) ke Nilai Waktu di Oracle

  2. Tampilkan nilai gabungan dalam SQL Query

  3. Dalam kinerja klausa versus klausa OR

  4. Periksa tabel ada atau tidak sebelum membuatnya di Oracle

  5. Di Oracle, apakah mungkin memasukkan kolom ke dalam tabel?