Tôi tin rằng SQL%NOTFOUND
trả về true
khi không có hồ sơ nào được tìm thấy. IF
của bạn sẽ đánh giá thành true trong trường hợp đó, và do đó ghi put_line của bạn vào terminal. Câu lệnh SQL được thực thi thành công. Nếu bạn tự thực thi câu lệnh SQL đó từ dòng lệnh, bạn sẽ nhận được 0 hàng được cập nhật / xóa, không phải lỗi Oracle.
Nếu bạn muốn ném một ngoại lệ, bạn có thể sử dụng RAISE
bên trong IF
của bạn và trỏ nó đến ngoại lệ trong khối ngoại lệ mà bạn muốn đưa ra.