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

Giới thiệu về xử lý ngoại lệ PL / SQL trong cơ sở dữ liệu Oracle

Chúng tôi không thể nói rằng mã là mạnh mẽ cho đến khi nó có thể xử lý tất cả các ngoại lệ. Lỗi và việc chấm dứt chương trình đột ngột là cơn ác mộng trong cuộc đời của một lập trình viên. Không một lập trình viên nào muốn phát triển một đoạn mã bị lỗi giữa chừng hoặc hoạt động không như mong muốn. Vì vậy, để thực thi trơn tru một phần mềm, cần phải xử lý tất cả các loại ngoại lệ.

Biết được vấn đề của bạn là bước đầu tiên để tìm ra giải pháp. Vì vậy, chúng ta hãy tìm hiểu thêm về cách xử lý ngoại lệ trong cơ sở dữ liệu Oracle.

Ngoại lệ là gì?

Bất kỳ điều kiện bất thường nào hoặc giả sử sự kiện làm gián đoạn luồng thông thường của hướng dẫn chương trình của bạn tại thời điểm chạy đều là ngoại lệ. Hay nói một cách đơn giản, bạn có thể nói một ngoại lệ là lỗi thời gian chạy.

Byte thông tin:
Các trường hợp ngoại lệ được thiết kế để xử lý lỗi thời gian chạy hơn là xử lý lỗi thời gian biên dịch. Các lỗi xảy ra trong giai đoạn biên dịch được trình biên dịch PL / SQL phát hiện và báo cáo lại cho người dùng.

Các loại ngoại lệ

Có hai loại ngoại lệ PL / SQL trong cơ sở dữ liệu Oracle.

  1. Các ngoại lệ do hệ thống xác định và
  2. Các trường hợp ngoại lệ do người dùng xác định

Ngoại lệ do hệ thống xác định

Các ngoại lệ do hệ thống xác định được xác định và duy trì ngầm bởi máy chủ Oracle. Các ngoại lệ này chủ yếu được xác định trong gói Oracle STANDARD . Bất cứ khi nào một ngoại lệ xảy ra bên trong chương trình. Máy chủ Oracle khớp và xác định ngoại lệ thích hợp từ tập hợp các ngoại lệ có sẵn.

Các ngoại lệ do hệ thống xác định chủ yếu có mã lỗi phủ định và thông báo lỗi. Các lỗi này có tên ngắn được sử dụng với trình xử lý ngoại lệ.

Byte thông tin:
Oracle cung cấp hai hàm tiện ích SQLCODE &SQLERRM để truy xuất mã lỗi và thông báo cho trường hợp ngoại lệ lần cuối.

Ngoại lệ do người dùng xác định

Không giống như ngoại lệ do hệ thống xác định, ngoại lệ do người dùng xác định được nêu rõ ràng trong phần thân của khối PL / SQL (cụ thể hơn là bên trong phần BEGIN-END) bằng cách sử dụng Câu lệnh RAISE.

Cách khai báo ngoại lệ do người dùng xác định trong cơ sở dữ liệu Oracle.

Có ba cách khai báo các ngoại lệ do người dùng xác định trong Cơ sở dữ liệu Oracle.

  1. Bằng cách khai báo một biến kiểu EXCEPTION trong phần khai báo.

Bạn có thể khai báo một ngoại lệ do người dùng xác định bằng cách khai báo một biến kiểu dữ liệu EXCEPTION trong mã của bạn và nâng nó một cách rõ ràng trong chương trình của bạn bằng cách sử dụng câu lệnh RAISE và xử lý chúng trong Phần Ngoại lệ.

  1. Khai báo ngoại lệ do người dùng xác định bằng hàm PRAGMA EXCEPTION_INIT.

Sử dụng hàm PRAGMA EXCEPTION_INIT, bạn có thể ánh xạ một số lỗi không được xác định trước với biến của kiểu dữ liệu EXCEPTION. Có nghĩa là khi sử dụng cùng một hàm, bạn có thể kết hợp một biến của kiểu dữ liệu EXCEPTION với một lỗi chuẩn.

  1. Phương pháp RAISE_APPLICATION_ERROR.

Sử dụng phương pháp này, bạn có thể khai báo một ngoại lệ do người dùng xác định với thông báo và số lỗi tùy chỉnh của riêng bạn.

Đó là nó cho phần này. Hy vọng bạn thích đọc phần giới thiệu ngắn gọn này về xử lý ngoại lệ trong Cơ sở dữ liệu Oracle. Trong blog này, tôi đã cố gắng trả lời một số câu hỏi mà bạn có thể mong đợi trong Chứng chỉ Cơ sở dữ liệu Oracle của mình cũng như trong Cuộc phỏng vấn .

Hãy theo dõi vì trong hướng dẫn tiếp theo, chúng tôi sẽ làm một số ví dụ thú vị giải thích các khái niệm được đề cập ở trên sẽ giúp bạn nâng cao kiến ​​thức và giúp bạn nắm chắc các khái niệm về xử lý ngoại lệ PL / SQL. Cảm ơn và chúc một ngày tốt lành!


  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 xuất dữ liệu thành tệp CSV trong Oracle bằng quy trình PL SQL

  2. Làm thế nào để sử dụng Array / Table Parameter cho Oracle (ODP.NET 10g) qua ADO.NET/C#?

  3. Làm cách nào để khai báo và sử dụng các biến trong PL / SQL giống như trong T-SQL?

  4. Làm cách nào để chuyển các đối số tới một tập lệnh PL / SQL trên dòng lệnh với SQLPLUS?

  5. Cách sử dụng hàm Coalesce trong Oracle