【发布时间】:2019-06-08 06:04:15
【问题描述】:
我有一个 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
【问题讨论】:
-
请注意,对 UTL_HTTP 的调用或任何非事务性的调用可能会被调用 多次 次,即使是更新 单个 行。您不能假设触发器中的一行 = 一次调用。使用 dbms_job.submit 请求调用 UTL_HTTP 可能会更好,因为该作业将与父事务一起创建和/或回滚
标签: plsql oracle11g database-trigger