如何在触发器侧调用 PL/SQL 函数 [英] How to call PL/SQL function in side a trigger

查看:79
本文介绍了如何在触发器侧调用 PL/SQL 函数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我是 pl/sql 的新手.谁能告诉我如何在触发器中调用 pl/sql 函数.

I am new to pl/sql. can any one tell me how to call pl/sql function inside a trigger.

我累了,但是当我尝试运行它时出现错误.

I tired it but it gives an error when i try to run it.

DROP TRIGGER INTF_CONTROLLER_TREXE;

CREATE OR REPLACE TRIGGER INTF_CONTROLLER_TREXE
before insert ON INTF_CONTROLLER for each row
begin
BACKOFFICE_UPDATE();
end;


CREATE OR REPLACE FUNCTION BACKOFFICE_UPDATE
RETURN NUMBER IS
tmpVar NUMBER;

BEGIN
   tmpVar := 0;
   DBMS_OUTPUT.put_line ('HELLO');
   RETURN tmpVar;


   EXCEPTION
     WHEN NO_DATA_FOUND THEN
       NULL;
     WHEN OTHERS THEN
       -- Consider logging the error and then re-raise
       RAISE;
END BACKOFFICE_UPDATE;

我尝试使用 TOAD 运行它.它给出了以下错误

I tried to run it using TOAD. it gives the following error

PLS-00221:'BACKOFFICE_UPDATE' 不是程序或未定义

PLS-00221: 'BACKOFFICE_UPDATE' is not a procedure or is undefined

推荐答案

您需要将函数调用的结果存储在局部变量中

You need to store the result of your function call in a local variable

For example:
CREATE OR REPLACE TRIGGER INTF_CONTROLLER_TREXE 
before insert ON INTF_CONTROLLER for each row 
declare
dummy NUMBER;
begin 
dummy := BACKOFFICE_UPDATE(); 
end; 

这篇关于如何在触发器侧调用 PL/SQL 函数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆