2016年2月28日 星期日

Trigger六(調用子程序) (PL/SQL 二十三)

尤於trigger不能超過32KB,所以要寫很多的時候,可以提出來成為procedure或function

CREATE OR REPLACE PROCEDURE xxx IS 
BEGIN 
    DBMS_OUTPUT.PUT_LINE('procedure');
END;
    
    
    
CREATE OR REPLACE FUNCTION ooo RETURN VARCHAR2 IS
BEGIN
    DBMS_OUTPUT.PUT_LINE('function');
    RETURN 'success';
END;
    
    
    
CREATE OR REPLACE TRIGGER test_ddl
    BEFORE DDL ON SCHEMA ENABLE
BEGIN
    xxx;
    IF ooo() = 'success' THEN
        RAISE_APPLICATION_ERROR(-20000, '不能使用DDL');
    END IF;
END test_ddl;

※這時隨便create(假設create sequence),就OK了

※刪除時,必須先刪除trigger,如果先刪除procedure或function會出錯

沒有留言:

張貼留言