oracle函数写法实例

create or replace
FUNCTION        F_GET_ACC_ID
RETURN number
IS
PRAGMA AUTONOMOUS_TRANSACTION; --声明自主事务处理。


v_cur_idx          number;
v_ret_val          number;
v_max_val          number;


BEGIN


BEGIN
    SELECT IDX
      INTO v_cur_idx
      FROM COM_ID_TABLE
     WHERE CATEGORY_NAME='ACCSEQ';


     v_max_val:=65535;


EXCEPTION
WHEN NO_DATA_FOUND THEN
   rollback;
   RETURN null;
WHEN OTHERS THEN
   rollback;
   RETURN null;
END;


IF v_cur_idx < v_max_val  THEN


    v_ret_val := v_cur_idx+1;


    UPDATE COM_ID_TABLE
       SET IDX = v_ret_val
    WHERE category_name = 'ACCSEQ';


ELSE


    UPDATE COM_ID_TABLE
       SET IDX = 4096
    WHERE category_name = 'ACCSEQ';


    v_ret_val := 4096;


END IF;


commit;


RETURN v_ret_val;
END F_GET_ACC_ID;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值