oracle database 10g 期末考复习资料 - 图文(6)

2019-08-01 23:32

RETURN v_sal; END;

创建一个函数,以部门号为参数,返回该部门的平均工资。

CREATE OR REPLACE FUNCTION fun_avgsal(p_deptno emp.deptno%type) RETURN emp.sal%type AS

v_sal emp.sal%type; BEGIN

SELECT AVG(SAL) INTO V_SAL FROM EMP WHERE DEPTNO=P_DEPTNO; RETURN V_SAL; END;

实验十 触发器

在emp表上创建一个触发器,当插入、删除或修改员工信息时,统计各个部门的人数及平均工资,并输出。

CREATE OR REPLACE TRIGGER trg_emp AFTER INSERT OR UPDATE OR DELETE ON EMP DECLARE

v_sal emp.sal%type; v_count number; BEGIN

SELECT AVG(SAL),COUNT(*) INTO V_SAL,V_COUNT FROM EMP; DBMS_OUTPUT.PUT_LINE(V_SAL||' '||V_COUNT); END;

为emp表创建一个触发器,当插入新员工时显示新员工的员工号、员工名;当更新员工工资时,显示修改前后员工工资,并保证修改后的工资高于修改前的工资;当删除员工时,显示被删除的员工号、员工名。

CREATE OR REPLACE TRIGGER trg_emp

BEFORE INSERT OR UPDATE OR DELETE ON emp FOR EACH ROW BEGIN

IF INSERTING THEN

DBMS_OUTPUT.PUT_LINE(:new.empno||' '||:new.ename); ELSIF UPDATING THEN IF :new.sal<:old.sal THEN

RAISE_APPLICATION_ERROR(-20001,'The salary is lower!'); END IF;

DBMS_OUTPUT.PUT_LINE(:old.sal||' '||:new.sal); ELSE

DBMS_OUTPUT.PUT_LINE(:old.empno||' '||:old.ename);

第 26 页 共 27 页

END IF; END trg_emp;

第 27 页 共 27 页


oracle database 10g 期末考复习资料 - 图文(6).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:2014 安全培训教案 - 图文

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: