คุณมีสองทางเลือก:
อ้างถึงข้อยกเว้นโดยตรงตามหมายเลข:
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;
ตัวเลือกอื่น ๆ คือการใช้EXCEPTION_INIT
คำสั่ง Pragma เพื่อผูกหมายเลขข้อผิดพลาดของ Oracle ที่รู้จักกับข้อยกเว้นที่ผู้ใช้กำหนด
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 มีไวยากรณ์ใดที่จะตรวจจับข้อผิดพลาดโดยเพียงแค่ระบุรหัสข้อผิดพลาดหรือไม่?
ใช่ฉันได้สาธิตมันในตัวอย่างแรก
อ่านเพิ่มเติมสำหรับรูปแบบต่าง ๆ เกี่ยวกับเรื่องนี้: