Video: Bài 5. Xử lý ngoại lệ và thêm các bảng thoại trong quá trình xử lý dữ liệu Sql Serer 2025
Khi cố gắng xác định nguồn của lỗi SQL và SQLSTATE chỉ ra một điều kiện ngoại lệ bằng cách giữ một giá trị khác với 00000, 00001, hoặc 00002, bạn có thể muốn xử lý tình huống trong một trong các cách sau:
-
Trả lại kiểm soát cho thủ tục cha mẹ gọi là thủ tục con đã nêu ra ngoại lệ.
-
Sử dụng mệnh đề WHENEVER để phân nhánh cho một thói quen xử lý ngoại lệ hoặc thực hiện một số thao tác khác.
-
Xử lý ngoại lệ tại chỗ với câu lệnh SQL compound. Một lệnh SQL phức hợp bao gồm một hoặc nhiều câu lệnh SQL đơn giản, kẹp giữa các từ khóa BEGIN và END. Sau đây là ví dụ về trình xử lý ngoại lệ kết hợp lệnh:
BEGIN DECLARE ValueOutOfRange EXCEPTION FOR SQLSTATE'73003 '; REPLACE INTO FOODS (Calo) GIÁ TRỊ (cal); SIGNAL ValueOutOfRange; MESSAGE 'Xử lý giá trị calo mới. 'Ngoại trừ khi ValueOutOfRange THEN MESSAGE' Xử lý lỗi phạm vi calorie '; KHI KHÁC THENT RESALTAL; END
Với một hoặc nhiều câu lệnh DECLARE, bạn có thể đặt tên cho các giá trị SQLSTATE cụ thể mà bạn nghi ngờ có thể phát sinh. Câu lệnh INSERT là câu lệnh có thể gây ra một ngoại lệ xảy ra. Nếu giá trị của: cal vượt quá giá trị tối đa cho một mục dữ liệu SMALLINT, SQLSTATE được đặt là "73003". Câu lệnh SIGNAL báo hiệu một điều kiện ngoại lệ. Nó xóa khu vực chẩn đoán hàng đầu.
Nếu trường hợp ngoại lệ là một ngoại lệ của ValueOutOfRange, thì một loạt các câu lệnh được đại diện bởi câu lệnh MESSAGE 'Xử lý lỗi sai số calo' được thực thi. Câu lệnh RESIGNAL được thực hiện nếu ngoại lệ không phải là ngoại lệ của ValueOutOfRange.