我如何强制触发器提交事务
How can i force trigger commit the transaction
我有一个 oracle 触发器,我在其中调用一个使用 UTL_HTTP 方法的过程,我必须忽略任何错误并提交事务。我该怎么做。
CREATE OR REPLACE TRIGGER TRG_MYTRIGGER
BEFORE UPDATE OR INSERT ON MYTAB
FOR EACH ROW
DECLARE
MY_STATUS NUMBER(10);
BEGIN
MY_PROCEDURE(PARAMS..., MY_STATUS); -- THIS IS OPTIONAL
:NEW.MY_STATUS := MY_STATUS ;
END
触发器无法提交(或回滚)事务。如果你需要忽略被调用过程的任何错误,你需要添加一个exception handler:
CREATE OR REPLACE TRIGGER TRG_MYTRIGGER
BEFORE UPDATE OR INSERT ON MYTAB
FOR EACH ROW
DECLARE
MY_STATUS NUMBER(10);
BEGIN
begin
MY_PROCEDURE(PARAMS..., MY_STATUS); -- THIS IS OPTIONAL
exception
when others then
my_status := -42; -- signal an error through the status value
end;
:NEW.MY_STATUS := MY_STATUS;
END;
/
我有一个 oracle 触发器,我在其中调用一个使用 UTL_HTTP 方法的过程,我必须忽略任何错误并提交事务。我该怎么做。
CREATE OR REPLACE TRIGGER TRG_MYTRIGGER
BEFORE UPDATE OR INSERT ON MYTAB
FOR EACH ROW
DECLARE
MY_STATUS NUMBER(10);
BEGIN
MY_PROCEDURE(PARAMS..., MY_STATUS); -- THIS IS OPTIONAL
:NEW.MY_STATUS := MY_STATUS ;
END
触发器无法提交(或回滚)事务。如果你需要忽略被调用过程的任何错误,你需要添加一个exception handler:
CREATE OR REPLACE TRIGGER TRG_MYTRIGGER
BEFORE UPDATE OR INSERT ON MYTAB
FOR EACH ROW
DECLARE
MY_STATUS NUMBER(10);
BEGIN
begin
MY_PROCEDURE(PARAMS..., MY_STATUS); -- THIS IS OPTIONAL
exception
when others then
my_status := -42; -- signal an error through the status value
end;
:NEW.MY_STATUS := MY_STATUS;
END;
/