实验八触发器

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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和系统触发器的创建方法。通过看书本和问老师,同学,还算完成了实验。有的语句输入错误产生了运行错误。以后我会更加认真听课,好好理解这些语句和错误。

相关文档
最新文档