• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase
您的位置:首页 > 数据库 >oracle > Oracle 数据库 练习题 T8

Oracle 数据库 练习题 T8

作者:苏凯祺的博客 字体:[增加 减小] 来源:互联网 时间:2017-08-07

苏凯祺的博客通过本文主要向大家介绍了Oracle 数据库 练习题 T8等相关知识,希望本文的分享对您有所帮助

一、

emp员工表(empno员工号/ename员工姓名/job工作/mgr上级编号/hiredate受雇日期/sal薪金/comm佣金/deptno部门编号)

dept部门表(deptno部门编号/dname部门名称/loc地点)

1. 禁止员工在休息日改变雇员信息

2. 限制员工的工资不能超过当前的最高工资

3. 设置员工的工资不能低于原工资,但也不能高出原工资的20%

 

emp员工表(empno员工号/ename员工姓名/job工作/mgr上级编号/hiredate受雇日期/sal薪金/comm佣金/deptno部门编号)
dept部门表(deptno部门编号/dname部门名称/loc地点)
1.禁止员工在休息日改变雇员信息
CREATE OR REPLACE TRIGGER TRI_EMP
BEFORE UPDATE OR DELETE OR INSERT ON EMP
FOR EACH ROW
BEGIN
IF(SYSDATE>(ROUND(sysdate,'day')+(INTERVAL '-1' DAY)) AND "SYSDATE"<(ROUND(sysdate,'day')+(INTERVAL '+1' DAY))) THEN
raise_application_error(-20000,'禁止修改雇员信息');
ELSE
dbms_output.put_line('雇员信息修改成功');
END IF;
END;

SELECT ROUND(sysdate,'day')+(INTERVAL '+2' DAY)
FROM DUAL;

UPDATE EMP
SET SAL=200
WHERE EMPNO>7369;

2.限制员工的工资不能超过当前的最高工资
CREATE OR REPLACE PACKAGE P_MSAL AS
MAXSAL NUMBER;
END;

CREATE OR REPLACE TRIGGER TRI_SAL
BEFORE UPDATE OF SAL ON EMP
FOR EACH ROW
BEGIN
SELECT "MAX"(SAL) INTO P_MSAL.MAXSAL
FROM EMP;
END;

CREATE OR REPLACE TRIGGER TRI_SAL
BEFORE UPDATE OF SAL ON EMP
FOR EACH ROW
DECLARE
BEGIN
IF(:NEW.SAL>P_MSAL.MAXSAL) THEN
raise_application_error(-20000,'职员薪金超限,拒绝服务');
ELSE
dbms_output.put_line('薪金修改成功');
END IF;
END;

3.设置员工的工资不能低于原工资,但也不能高出原工资的20%
CREATE OR REPLACE TRIGGER TRI_MSAL
BEFORE UPDATE OF SAL ON EMP
FOR EACH ROW
DECLARE
BEGIN
IF(:NEW.SAL>=:OLD.SAL AND :NEW.SAL<=:OLD.SAL*(1*0.2)) THEN
dbms_output.put_line('职员薪金修改成功');
ELSE
raise_application_error(-20000,'薪金修改失败');
END IF;
END;

 

 

 

 

 

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

相关文章

  • 2017-05-11oracle的导入导出注意事项及心得分享
  • 2017-05-11Oracle Number型数值存储与转换的实现详解
  • 2017-05-11Oracle CBO优化模式中的5种索引访问方法浅析
  • 2017-05-11Oracle存储过程入门学习基本语法
  • 2017-05-11Oracle将查询的结果放入一张自定义表中并再查询数据
  • 2017-05-11Oracle性能究极优化
  • 2017-05-11用Oracle并行查询发挥多CPU的威力
  • 2017-05-11Oracle数据库中 call 和 exec的区别
  • 2017-05-11oracle 字符串转成行
  • 2017-05-11Oracle用户密码设为不过期的两种方法

文章分类

  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase

最近更新的内容

    • 深入浅析mybatis oracle BLOB类型字段保存与读取
    • 探讨Oracle中的&号问题
    • Oracle中简单查询、限定查询、数据排序SQL语句范例和详细注解
    • Oracle minus用法详解及应用实例
    • PL/SQL Number数字类型函数
    • Oracle中 lsnrctl命令使用总结(推荐)
    • Oracle计算时间差为毫秒的实现代码
    • oracle中left join和right join的区别浅谈
    • oracle数据库常用的99条查询语句
    • Oracle Translate 统计字符出现的次数示例代码

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有