Bạn có hai lựa chọn:
Tham khảo ngoại lệ trực tiếp theo số:
BEGIN
EXECUTE IMMEDIATE 'CREATE SEQUENCE S_TEST START WITH 1 INCREMENT BY 1';
EXCEPTION
WHEN OTHERS THEN
IF SQLCODE = -955 THEN
NULL; -- suppresses ORA-00955 exception
ELSE
RAISE;
END IF;
END;
Tùy chọn khác là sử dụng EXCEPTION_INIT
chỉ thị thực dụng để liên kết một số lỗi Oracle đã biết với ngoại lệ do người dùng xác định;
DECLARE
name_in_use exception; --declare a user defined exception
pragma exception_init( name_in_use, -955 ); --bind the error code to the above
BEGIN
EXECUTE IMMEDIATE 'CREATE SEQUENCE S_TEST START WITH 1 INCREMENT BY 1';
EXCEPTION
when name_in_use then
null; --suppress ORA-00955 exception
END;
BTW Có cú pháp nào để bắt lỗi chỉ bằng cách cung cấp mã lỗi không?
Vâng, tôi đã chứng minh điều đó trong ví dụ đầu tiên
Đọc thêm cho các biến thể về điều này: