存储过程小记

 简单示例一:

create or replace procedure testp(isal in number)--输入参数不能有长度限制
is
xname varchar2(10); --变量要有长度限制
CURSOR cur_1 is select ename from emp where sal>isal;--游标定义
begin
DBMS_OUTPUT.put_line('HELLO WORLD');
 FOR rec in cur_1 loop--迭代游标
  begin
   xname := rec.ename;
   DBMS_OUTPUT.put_line('name:'||xname);
  end;
end loop;
end;

示例二:

create or replace procedure p_form_submit_task(arg_pid in VARCHAR2,arg_begin_date in date,arg_end_date in date,arg_type in varchar2)
is
a_state varchar2(20);
   CURSOR cur_1 is
   select FORM_ID fid,PERIOD_TYPE pt,SUBMIT_DATE_LIMIT sdl,BEGIN_DECLARE_DATE bdd,
       BIZ_DATE_BEGIN bdb,BIZ_DATE_END bde from FORM_SUBMIT_TASK_RULE
       where RULE_PROP1=arg_type and BIZ_DATE_BEGIN>=arg_begin_date and BIZ_DATE_END<=arg_end_date;
begin
   FOR rec in cur_1 loop
   begin
   --先判断是否有相应记录
   select STATE into a_state from FORM_SUBMIT_TASK where PID=arg_pid and FORM_ID=rec.fid and BIZ_DATE_BEGIN=rec.bdb and BIZ_DATE_END=rec.bde;
     --如果有记录且为未提交记录,则更新记录
     if a_state ='0' then
       begin
       update FORM_SUBMIT_TASK set ENTERPRISE_TYPE=arg_type,PERIOD_TYPE=rec.pt,SUBMIT_DATE_LIMIT=rec.sdl
       where PID=arg_pid and FORM_ID=rec.fid and BIZ_DATE_BEGIN=rec.bdb and BIZ_DATE_END=rec.bde;
      -- DBMS_OUTPUT.put_line('UPDATE``````');
       end;
     end if;
  exception
  --没有记录就直接插入记录
  when NO_DATA_FOUND then
    insert into FORM_SUBMIT_TASK(TASK_ID,TASK_TYPE,FORM_ID,PID,ENTERPRISE_TYPE,PERIOD_TYPE,SUBMIT_DATE_LIMIT,BEGIN_DECLARE_DATE,BIZ_DATE_BEGIN,BIZ_DATE_END,STATE,OVERDUE_DAYS)
          values(sys_guid(),'CWBB',rec.fid,arg_pid,arg_type,rec.pt,rec.sdl,rec.bdd,rec.bdb,rec.bde,'0',0);
          --DBMS_OUTPUT.put_line('INSERT``````');
  end;
end loop;
COMMIT;
end;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

hjay0715

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值