------------------------------函数与自治事务
CREATE OR REPLACE FUNCTION 函数名称 RETURN VARCHAR2 IS
num number:=0;
p_err_row VARCHAR2(1000):='';
p_sqlerrm VARCHAR2(1000):='';
PRAGMA AUTONOMOUS_TRANSACTION;--声明事务
BEGIN
select count(1) into num from 表名 t where exists ...;
if num > 0 then
RETURN 'WAIT';
else
----------------------------------------------------
--放入要事务
--自治事务
insert into user_info_increase_sj
(id ,name)
select id, name
from 表;
-- 2.更新证件类型
update 表 set 字段='' where ....;
--测试异常语句:insert into 表名 m (m.id) VALUES ('1');
commit;
----------------------------------------------------
end if;
RETURN 'OK';
EXCEPTION
WHEN others THEN rollback;
DBMS_OUTPUT.PUT_LINE('ERR');
p_sqlerrm := sqlerrm; --错误信息
p_err_row := dbms_utility.format_error_backtrace(); --错误行
--自定义函数名称,操做人,添加时间,错误信息,错误位置
insert into 日志表;
commit;
RETURN 'ERR';
end;
/
---------函数测试查询:select 函数名称() as RETURN from dual
--------- 测试查询 select * from 日志表sql