触发器trigger中调用包package(包中含:存储过程procedure及函数function)_plsql

create or replace package pkg_trig_trans --定义包(也叫包规范)
is
function f_trunc_a(v_a test_trim.a%type)
return test_trim.a%type; --函数
procedure p_upper_b(v_b in out test_trim.b%type);--过程
end;
/

create or replace package body pkg_trig_trans --包体,具体实现逻辑
is
function f_trunc_a(v_a test_trim.a%type)
return test_trim.a%type
is
begin
 return trunc(v_a); --用到了trunc函数
end f_trunc_a;

procedure p_upper_b(v_b in out test_trim.b%type)
is
begin
v_b:=upper(v_b);
end p_upper_b;
end pkg_trig_trans;
/

 


create or replace trigger trig_call_pkg --定义触发器
before insert on test_trim
for each row
begin
 :new.a:=pkg_trig_trans.f_trunc_a(:new.a); --触发器内部调用包中的函数,注意参数,:new.列名
 pkg_trig_trans.p_upper_b(:new.b);--触发器内部调用包中的过程
end;
/

set serveroutput on

 

SQL> insert into test_trim values(85.33,'sun');

1 row created.

SQL> commit;

Commit complete.

SQL> set serveroutput on
SQL> select * from test_trim;

         A B
---------- --------------------
        99 MV1
        99 HAHA
        99 HAHA2
        98 MVP
        77 CAO
        85 SUN  ---这就是触发器调用包(转变插入列a,b各为取整及大写的结果)

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/9240380/viewspace-670957/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/9240380/viewspace-670957/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值