------------------------------函數與自治事務
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