13Oracle Database 存储过程

Oracle Database 存储过程


触发器相当于java中的事件监听,当某事件发生时激活特定的事件并执行相应的逻辑

DML触发器中包含了三种事件 insert update delete

语法格式

create [or replace] trigger 触发器名

{before| after | instead of} {insert|delete|update}

on 表名

[for each row]

when 条件

begin

end;

before   在事件开始前执行begin/end

一般应用场合:

1     判断触发事件(一般是一个DML 语句)是否应该被执行 2     在触发事件之前计算一个列的值

after       在事件开始后执行begin/end

 

一般应用场合:

1         完成触发事件

 

for each row     表示每操作一次都触发,称作行级,不写表示无论操作多少行,只触发一次,称作表级

 

when(条件) 必须是行级

小技巧:

触发器中可以使用三个条件词 Inserting,deleting,updating

触发器中可以使用两个变量 :old | :new  分别表示旧有的值和新值,必须是行级(在过程中加:)

 

instead of 替代触发器: 只能作用在视图上,用于替代DML语句 ,行级,不可与when同用

 

两个任务:

       第一题

       创建一张表 create table test(aa number primary key);

       执行10次 insert into test values(任意整数) ; 语句

       查询此表,结果为 1 2 3 4 5 6 7 8 9 10

 

       第二题

       创建一触发器保证每周的周六周日,以及每天早八点前和晚六点后不允许对emp表进行任何的DML(insert,delete,update)操作。

       第三题

       实现emp表中的外键deptid的级联更新功能

语法格式

create or replace procedure 过程名(参数 参数设置 参数类型) is
        声明语句段;
    begin
        执行语句段;
    exception
        异常处理语句段;
    end;

参数设置

in参数:读入参数,主程序向过程传递参数值。

out参数:读出参数,过程向主程序传递参数值。

in out 参数:双向参数,过程与主程序双向交流数据。

调用存储过程方法

    无返回参数  execute 过程名(参数);

    有返回参数的要在另一个过程中调用并赋值

转载于:https://www.cnblogs.com/Aha-Best/p/10858904.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值