要创建一个自治事务,您必须在匿名块的最高层或者存储过程、函数、数据包或触发的定义部分中,使用PL/SQL中的PRAGMA AUTONOMOUS_TRANSACTION语句。在这样的模块或过程中执行的SQL Server语句都是自治的。
例子
create or replace function sms_send(v_mobile_no varchar2, --电话号码
v_dx_content varchar2 --短信内容
)
return varchar2 is
pragma autonomous_transaction;
v_result integer;
v_msg varchar2(100);
v_exception Exception;
BEGIN
v_msg := ‘OK‘;
--往中间短信发送表插入发送数据
v_msg := ‘发送失败!‘;
v_result := -10;
INSERT INTO TABLE VALUES(‘‘,‘‘);
commit;
return ‘OK‘;
END;