ITPub博客

首页 > 数据库 > Oracle > [原创]Oralce游标定义、游标变量、游标循环的实际例子

[原创]Oralce游标定义、游标变量、游标循环的实际例子

Oracle 作者:AboyMaxwell 时间:2013-02-04 23:16:28 0 删除 编辑
2月5日 Oralce游标定义、游标变量、游标循环的实际例子
--给销售订单加上行号 --同一个单据号(djh)之内,行号(rowno)按照10的步长来编号 --新单据号,行号要重新从10开始 declare             --本例子演示了Oralce游标定义、Oracle游标变量、Oracle游标循环   --以及在游标里面更新数据库的技巧   cursor cc is select nno,djh,rowno             from temp_so order by nno;            --定义游标变量             ccrec cc%rowtype;   --定义自己的变量   irowno number;   idjh varchar2(50); begin             --打开游标            open cc;               --提取一行数据到ccrec中                 fetch cc into ccrec;                          --判断是否提取到值,没取到值就退出                   --取到值cc%notfound 是false                   --取不到值cc%notfound 是true      idjh := ccrec.djh;      irowno:=10;    loop --loop循环        --exit when (cc%notfound or cc%rowcount =300);          exit when (cc%notfound);   
    if (idjh = ccrec.djh) then      update temp_so set temp_so.rowno = irowno where temp_so.nno = ccrec.nno;      --dbms_output.put_line(cc%rowcount||'    '||ccrec.djh||'    '||idjh||'    '||irowno);     else       irowno:=10;      idjh := ccrec.djh;      update temp_so set temp_so.rowno = irowno where temp_so.nno = ccrec.nno;      -- dbms_output.put_line(cc%rowcount||'    '||ccrec.djh||'    '||idjh||'    '||irowno);     end if;      fetch cc into ccrec;        irowno:=irowno+10;    end loop;    close cc;    commit; end;
<!-- 正文结束 -->

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/23795921/viewspace-1117522/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: 没有了~
下一篇: 没有了~
请登录后发表评论 登录
全部评论

注册时间:2010-04-26