PRAGMA是一个编译指示(或命令)。
编译指示是对编译程序发出的特殊指令。编译指示在编译时被处理,它们不在运行时执行。它也称为伪指令(pseudoinstruction),不会改变程序的含义。
它只是向编译程序传递信息 ,实际上它是非常类似于嵌在 SQL 语句的注释中的性能调整提示。
PRAGMA EXCEPTION_INIT表示将一个特定的错误号与程序中所声明的异常标示符关联起来。
如,以下代码中,通过编译指示将用户自定义异常(e_child_exists)与ORA-02292相关联。
-- For Example ch10_3b.sql
DECLARE
v_zip ZIPCODE.ZIP%TYPE := '&sv_zip';
e_child_exists EXCEPTION;
PRAGMA EXCEPTION_INIT(e_child_exists, -2292);
BEGIN
DELETE FROM zipcode
WHERE zip = v_zip;
DBMS_OUTPUT.PUT_LINE ('Zip '||v_zip||' has been deleted');
COMMIT;
EXCEPTION
WHEN e_child_exists
THEN
DBMS_OUTPUT.PUT_LINE ('Delete students for this zipcode first');
END;