如何在触发器侧调用 PL/SQL 函数 [英] How to call PL/SQL function in side a trigger
本文介绍了如何在触发器侧调用 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屋!
查看全文