实验八触发器
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《大型数据库技术及应用》
实验报告
实验名称:触发器
班级:36-2
学号:11103060203
姓名:程娟
实验八触发器
一、实验学时:
2学时
二、实验类型:
设计性实验
三、实验目的和主要内容:
掌握DDL、DML和系统触发器的创建方法。
主要内容包括:
1. 编写一个触发器,用它把数据库系统的关闭事件记录到一个表(表结构自己设计)内。
SQL> Create table shutdown_log(shut_user varchar2(20),
2 Shut_time date,
3 Shut_action varchar2(20));
表已创建。
SQL> Create or replace trigger shutdown_record
2 Before shutdown
3 On database
4 Begin
5 Insert into shutdown_log values(user,sysdate,'关闭数据库');
6 End;
7 /
触发器已创建
SQL> shutdown;
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> startup;
ORACLE 例程已经启动。
Total System Global Area 135338868 bytes
Fixed Size 453492 bytes
Variable Size 109051904 bytes
Database Buffers 25165824 bytes
Redo Buffers 667648 bytes
数据库装载完毕。
数据库已经打开。
SQL> select * from shutdown_log;
SHUT_USER SHUT_TIME SHUT_ACTION
-------------------- ---------- --------------------
SYS 05-11月-13 关闭数据库
2. 编写一个行触发器,把emp表增、删、改操作前后员工的姓名和工资前
后变化情况显示处理。
SQL> Create or replace trigger trg_row
2 Before insert or update or delete
3 on scott.emp
4 For each row
5 Begin
6 If inserting then
7 Dbms_output.put_line(:new.empno||' '||:new.ename);
8 Elsif updating then
9 Dbms_output.put_line(:old.sal||' '||:new.sal);
10 Else
11 Dbms_output.put_line(:old.empno||' '||:old.ename);
12 End if;
13 End trg_row;
14 /
触发器已创建
SQL> select trigger_name from user_triggers;
TRIGGER_NAME
------------------------------
TRG_EMP_DM1_ROW
TRG_EMP_DML_ROW
TRG_ROW
AURORA$SERVER$SHUTDOWN
AURORA$SERVER$STARTUP
CDC_ALTER_CTABLE_BEFORE
CDC_CREATE_CTABLE_AFTER
CDC_CREATE_CTABLE_BEFORE
CDC_DROP_CTABLE_BEFORE
NO_VM_CREATE
NO_VM_DROP
TRIGGER_NAME
------------------------------
SHUTDOWN_RECORD
SHUTDOWN_RECORD
SYS_LOGOFF
SYS_LOGON
已选择15行。
触发器已创建四、实验仪器设备和材料:
Intel 酷睿2双核计算机及其网络、Windows 2000/XP、Oracle 9i安装版。
五、实验报告要求:
要求写出实验目的、实验内容、实验步骤(含程序代码、实验结果)和实验心得。
实验心得:通过这次试验,让我了解到更多东西,了解也更深入。知道了创建触发器的方法。在老师的帮助下解决了一些错误。这次实验主要是掌握DDL、DML和系统触发器的创建方法。通过看书本和问老师,同学,还算完成了实验。有的语句输入错误产生了运行错误。以后我会更加认真听课,好好理解这些语句和错误。