快速学习Oracle触发器和游标

2023-02-07 13:02:30 作者:admin

本文整理自网络,侵删。

目录
  • 触发器:
    • 1、 创建一个用于记录用户操作的触发器
    • 2、创建一个当删除部门时,删除该部门下的所有雇员的触发器
    • 3、创建一个在account表插入记录之后,更新myevent数据表的触发器
    • 4、创建一个用于记录登录 DBA 身份用户的用户名和时间的触发器
  • 游标:
    • 1、使用隐式游标和 for 语句检索出职务是销售员(salesman)的雇员信息并输出
    • 2、员工工资上调20%,使用隐式游标输出上调工资的员工数量
    • 3、用显示游标和for语句检索出部门编号是30的雇员信息并输出
    • 4、声明游标检索员工信息,并使用%FOUND属性来判断
    • 5、创建游标完成数据转移,将fruit表中单价大于10的记录放到fruitage表中

触发器:

1、 创建一个用于记录用户操作的触发器

  创建一个dept_log数据表,并在其中定义两个字段(operate_tag varchar2(10),operate_time date),分别用来存储操作种类(插入,修改,删除)信息和操作日期。然后一个关于dept表的语句级触发器tri_dept,将用户对 dept 表的操作信息保存到dept_tag表中。

当任何时候从dept表中删除某个部门时,该触发器将从emp表中删除该部门的所有雇员。

-- 创建表create table dept_log(operate_tag varchar2(10),operate_time date);create table dept(dname varchar2(20),dno number);-- 创建触发器create or replace trigger tri_deptbefore insert or update or deleteon deptdeclarev_tag varchar2(10);beginif inserting thenv_tag:='插入';elsif updating thenv_tag:='修改';elsif deleting thenv_tag:='删除';end if;insert into dept_log values(v_tag, sysdate);end tri_dept;/

2、创建一个当删除部门时,删除该部门下的所有雇员的触发器

当任何时候从dept表中删除某个部门时,该触发器将从emp表中删除该部门的所有雇员。

阅读剩余部分

相关阅读 >>

oracle和mysql的优缺点是什么?

oracle查看被锁的表以及解锁的方法介绍(代码示例)

oracle游标的使用实例详解

oracle 模糊查询及like用法

plsql number型数据

数据库12种数据类型是什么

生产环境oracle undo表空间管理实践

oracle怎么下载

oracle归档日志写满(ora-00257)了怎么办

通过oracle8i入侵系统全过程(图)

更多相关阅读请进入《oracle》频道 >>


数据库系统概念 第6版
书籍

数据库系统概念 第6版

机械工业出版社

本书主要讲述了数据模型、基于对象的数据库和XML、数据存储和查询、事务管理、体系结构等方面的内容。



在线咨询 拨打电话