返回日记本

oracle事务自治

函数加上如下语句表示事务自治

 

  PRAGMA AUTONOMOUS_TRANSACTION;

 

 

 

例:

 

Sql代码  create or replace function func_made_applycode(schoolcode in varchar2,spe_level in integer) return varchar2 is    Result varchar2(20);    /*生成报名号*/    v_yearno year_semester.year_value%type;    v_semesterno year_semester.semester_value%type;    v_liushui number;    PRAGMA AUTONOMOUS_TRANSACTION;  begin    select a.year_value,a.semester_value into v_yearno,v_semesterno from year_semester a where a.isused =1 and rownum = 1;    select nvl(max(to_number(substr(a.apply_code,9,5))),0) into v_liushui from apply_info a    where substr(a.apply_code,1,4) = v_yearno       and substr(a.apply_code,5,1) = v_semesterno       and substr(a.apply_code,6,2)= schoolcode;    v_liushui := v_liushui+1;    Result := v_yearno||v_semesterno||schoolcode||case spe_level when 103001 then 1 when 103002 then 7 when 103003 then 4 end||lpad(v_liushui,5,0);        return(Result);  end func_made_applycode;  create or replace function func_made_applycode(schoolcode in varchar2,spe_level in integer) return varchar2 is

Result varchar2(20);

/*生成报名号*/

v_yearno year_semester.year_value%type;

v_semesterno year_semester.semester_value%type;

v_liushui number;

PRAGMA AUTONOMOUS_TRANSACTION;

begin

select a.year_value,a.semester_value into v_yearno,v_semesterno from year_semester a where a.isused =1 and rownum = 1;

select nvl(max(to_number(substr(a.apply_code,9,5))),0) into v_liushui from apply_info a

where substr(a.apply_code,1,4) = v_yearno

and substr(a.apply_code,5,1) = v_semesterno

and substr(a.apply_code,6,2)= schoolcode;

v_liushui := v_liushui+1;

Result := v_yearno||v_semesterno||schoolcode||case spe_level when 103001 then 1 when 103002 then 7 when 103003 then 4 end||lpad(v_liushui,5,0);

return(Result);

end func_made_applycode;


原文章浏览量:1098

原文章分类:数据库

原文链接:https://www.iteye.com/blog/lizhiyu-1069481