Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

Xử lý lỗi Oracle

Lỗi ORA-00942 thường là lỗi thời gian biên dịch. Oracle phải giải quyết (các) tên của các bảng tại thời điểm biên dịch. Các trình xử lý ngoại lệ sẽ bẫy lỗi trong thời gian chạy, không phải thời gian biên dịch.

Nếu bạn đã sử dụng SQL động, bạn có thể hoãn việc phân giải các tên trong thời gian chạy mà tại thời điểm đó, bạn có thể bắt được ngoại lệ, tức là

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.

Nhưng đó không phải là một cách hợp lý, nói chung, để viết các thủ tục được lưu trữ. Các thủ tục của bạn nên biết bảng nào thực sự tồn tại và các lỗi cú pháp phải được xác định và giải quyết trong quá trình phát triển, không phải trong thời gian chạy.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cách sử dụng thực thi ngay lập tức với mệnh đề INTO trong cơ sở dữ liệu Oracle

  2. Chèn dữ liệu máy chủ SQL với Oracle® SQL * Loader

  3. Phân vùng Oracle theo Từ khóa

  4. Làm thế nào để thực hiện một thủ tục được lưu trữ oracle?

  5. Làm thế nào để kết nối trong java dưới dạng SYS với Oracle?