欢迎来到Doc100.Net免费学习资源知识分享平台!
您的位置:首页 > 程序异常 >

触发器里调用存储过程或函数的有关问题

更新时间: 2014-01-05 02:13:42 责任编辑: Author_N1

 

触发器里调用存储过程或函数的问题
我想在触发器里调用一个存储过程或者是函数,要以该触发器的表名为存储过程或函数的参数,如:

create table a
(aa number(10),
 bb number(10)
);
/

create or replace trigger a_tri
before insert on a
for each row
begin
  --proc 做为存储过程名
  proc(a);--a是表名同时做为存储过程的参数传递。
end;


想实现这样的一个触发器,我该怎么做?
--参考方法--
引用:
我想在触发器里调用一个存储过程或者是函数,要以该触发器的表名为存储过程或函数的参数,如:

create table a
(aa number(10),
 bb number(10)
);
/

create or replace trigger a_tri
before insert on a
for each row
begin
  --proc 做为存储过程名
  proc(a);--a是表名同时做为存储过程的参数传递。
end;


想实现这样的一个触发器,我该怎么做?


create or replace trigger a_tri
  before insert on A
  for each row
    declare
    t_name varchar2(10);
begin
  --proc 做为存储过程名 
    select t.table_name into t_name from all_triggers t where t.trigger_name='A_TRI';
    proc(T_NAME);--a是表名同时做为存储过程的参数传递。
 end;

--参考方法--
请问你在定义触发器的时候你还不知道作用在哪个表?
所以你在下面调用存储过程的时候已经可以直接写表名。
--参考方法--
select 'a' into t_name from dual;
这样可以吗
上一篇:上一篇
下一篇:下一篇

 

随机推荐程序问答结果

 

 

如对文章有任何疑问请提交到问题反馈,或者您对内容不满意,请您反馈给我们DOC100.NET论坛发贴求解。
DOC100.NET资源网,机器学习分类整理更新日期::2014-01-05 02:13:42
如需转载,请注明文章出处和来源网址:http://www.doc100.net/bugs/t/7207/
本文WWW.DOC100.NET DOC100.NET版权所有。