两个经典的Oracle触发器示例

2012-11-12
    【案例一】
    题目:
    --触发器:
    --添加员工信息,流水号作为自动编号(通过序列生成),
    --并且判断如果工资小于0,则改为0;如果大于10000,则改为10000。
    CREATE TABLE emp2(
    e_id NUMBER,
    e_no NUMBER,
    e_name VARCHAR2(20),
    e_sal NUMBER
    )
    SELECT * FROM emp2;
    CREATE SEQUENCE seq_trg_id;
    INSERT INTO emp2(e_id,e_no,e_name,e_sal) VALUES(seq_trg_id.nextval,7788,'章子',
    1000000000000)
    INSERT INTO emp2(e_id,e_no,e_name,e_sal) VALUES(seq_trg_id.nextval,7788,'章子怡',-10)
    CREATE OR REPLACE TRIGGER trg_add_emp_info
    BEFORE INSERT
    ON emp2
    FOR EACH ROW
    DECLARE
    -- local variables here
    BEGIN
    SELECT seq_trg_id.NEXTVAL INTO :NEW.e_id FROM dual;
    IF  :NEW.e_sal < 0 THEN
    :NEW.e_sal := 0;
    ELSIF  :NEW.e_sal > 10000 THEN
    :NEW.e_sal := 10000;
    END IF;
    END;

    考试大温馨提示:本内容来源于网络,仅代表作者个人观点,与本站立场无关,仅供您学习交流使用。其中可能有部分文章经过多次转载而造成文章内容缺失、错误或文章作者不详等问题,请您谅解。如有侵犯您的权利,请联系我们,本站会立即予以处理。

    相关推荐

    oracle中的rownum总结

    oracle维护常用语句

    数据库系统实现:数据库实现概论

分享到:
0
相关阅读
友情链接
© 2018 我考网 http://www.woexam.com 中国互联网举报中心 湘ICP备18023104号 京公网安备 11010802020116号
违法和不良信息举报:9447029@qq.com