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

Penanganan kesalahan Oracle

Kesalahan ORA-00942 umumnya akan menjadi kesalahan waktu kompilasi. Oracle harus menyelesaikan nama tabel pada waktu kompilasi. Penangan pengecualian akan menjebak kesalahan pada waktu proses, bukan waktu kompilasi.

Jika Anda menggunakan SQL dinamis, Anda dapat menunda resolusi nama ke runtime di mana Anda dapat menangkap pengecualian, yaitu

SQL> ed
Wrote file afiedt.buf

  1  declare
  2    no_such_table exception;
  3    pragma exception_init( no_such_table, -942 );
  4    l_cnt integer;
  5  begin
  6    execute immediate 'select count(*) from emps' into l_cnt;
  7  exception
  8    when no_such_table
  9    then
 10      dbms_output.put_line( 'No such table' );
 11* end;
SQL> /
No such table

PL/SQL procedure successfully completed.

Tapi itu bukan cara yang masuk akal, secara umum, untuk menulis prosedur tersimpan. Prosedur Anda harus mengetahui tabel apa yang sebenarnya ada dan kesalahan sintaks harus diidentifikasi dan diselesaikan selama pengembangan, bukan saat runtime.



  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 Menghapus Nol ketika Bagian Integer adalah Nol di Oracle

  2. Oracle Dinamis Pivot_In_Clause

  3. Memisahkan string menjadi beberapa baris di Oracle

  4. WHERE IN kondisi tidak menerima nilai String

  5. Bagaimana saya bisa menjatuhkan batasan bukan nol di Oracle ketika saya tidak tahu nama batasannya?