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

Bagaimana cara saya meneruskan kode pengembalian dari skrip Oracle kembali ke skrip WINDOWS Batch yang menyebutnya?

Anda perlu mendeklarasikan penanganan kondisi kesalahan sebelum kesalahan terjadi:

Whenever sqlerror exit sql.sqlcode; 
DROP user MYUSER cascade;
EXIT 0;

Anda dapat mengubah penanganan pada titik yang berbeda dalam skrip. Misalnya Anda bisa melakukan protektif drop sebelum membuat, dengan mengabaikan kesalahan pada drop, tapi tetap berhenti jika langkah berikutnya gagal:

whenever sqlerror continue
drop ...
whenever sqlerror exit failure
create...
alter...
etc

Kebetulan, di Unix-land pendekatan ini terbatas karena sebagian besar (semua?) shell memiliki kode pengembalian terbatas, dan angka yang lebih tinggi membungkus; jadi ORA-0918 akan dilaporkan sebagai 126, sehingga tidak mungkin untuk ditafsirkan. Lebih penting lagi, beberapa nilai akan membungkus ke nol, membuatnya terlihat seperti tidak ada kesalahan yang terjadi. Untungnya, Anda tidak memiliki masalah dengan %errorlevel%.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. RANK, DENSE_RANK dan ROW_NUMBER berfungsi di Oracle

  2. Pengembang Oracle SQL - tidak ada ocijdbc12 di java.library.path

  3. Temukan nilai yang tidak ada dalam tabel

  4. sql (Oracle) untuk memilih 10 catatan pertama, lalu 10 berikutnya, dan seterusnya

  5. Pemicu Oracle SQL untuk secara otomatis menetapkan nilai kolom