oracle 存储过程之游标(loop)使用

原创 2016年08月29日 11:45:09

最近再接触Oracle的存储过程,目前来说,项目中主要是两种存储方式,一种是loop游标的方式,一种是merge into 函数
今天主要是说明一下游标的主要的用法,感觉这个看懂了,游标这一类应该都是相通的,下面就是主要的例子

alter table T_JSQY_EDUEXPERITION add verify_date TIMESTAMP(6);增加表字段
ALTER TABLE 表名 MODIFY cardtype NULL;
这个是用到修改表机构的,大家可以随便了解一下。
declare  --声明两个变量
  v_id VARCHAR2(50);
  v_int number;
  cursor yb is
    select a.id  from T_D5_PUNISHMENT a where a.removed = '0';
begin
  v_int := 1;--变量赋值
  open yb;   --打开游标
  loop       --开始标记
    fetch yb into v_id;--游标赋值  当然这边可以赋值多个值
    (譬如:fetch yb into v_id , v_name;)
    exit when yb%notfound;--游标一条一条地遍历记录,当找不到记录时退出
    begin
      update T_D5_PUNISHMENT a set a.cardtype= case a.cardtype when '02' then '01' when '03' then '02' when '04' then '05' else '' end  --实际操作
        where a.id=v_id;
    exception    --异常抛出
      when others then
        dbms_output.put_line(v_id);
    end;
    v_int := v_int+1;
    if(v_int >=500) then
      commit;   --500条提交一次 分单系统压力,提高上传的效率
      v_int :=0;
    end if;
  end loop;  --结束标记
  commit;
  close yb;  --关闭游标
end;         --结束
/            --这个斜杠用处很大,比如好多条存储过程的话,可以写在后面一起执行。

上面的是个人的一些总结,见解,有什么疑问的、不对的地方,大家可以和我交流,还有一种merge into函数的存储过程整理,下次更新。
http://blog.csdn.net/z1729734271/article/details/52386664

版权声明:本文为博主原创,无版权,未经博主允许可以随意转载,无需注明出处,随意修改或保持可作为原创!

oracle存储过程中游标的使用(包括带参数的游标)

最近因为项目需要要写存储过程,以前没咋写过,接触到是接触过,在软通的时候接触过,那是华为的项目那个几个存储过程很大很复杂,也很乱,注释也少,看了个大概。最近一个月,前后也写了七八个简单点的存储过程,也...
  • wangwuyilove
  • wangwuyilove
  • 2015年06月24日 17:33
  • 10883

存储过程遍历游标三种方式

CREATE OR REPLACE PROCEDURE PRC_LJ IS    CURSOR C_EMP IS --声明显式游标       SELECT EMPNO,ENAME FROM ...
  • menghuannvxia
  • menghuannvxia
  • 2016年02月17日 14:49
  • 7195

Oracle存储过程中游标For循环使用

procedure copy(a_id int) is     cursor t_cursor is       select * from table f where f.id = a_id...
  • ying890
  • ying890
  • 2016年05月23日 20:27
  • 2301

oracle:IF语句 Loop循环 Cursor的用法(一)

1 概述 在大多数时候我们在设计pl-sql程序的时候都遵循下面的步骤:   打开游标 ->开始循环 -> 从游标中取值->检查那一行被返回 -> 处理 -> 关闭循环 -> 关闭游标 2 格式...
  • G15738290530
  • G15738290530
  • 2016年07月05日 11:18
  • 2520

Oracle 存储过程中的循环语句写法

资料来源:http://liliangjie.iteye.com/blog/812771 首先科普一下:  oracle 游标属性 sql%found sql%notfound sql%row...
  • ying890
  • ying890
  • 2016年05月23日 20:30
  • 4882

oracle存储过程里嵌套游标循环

oracle存储过程里嵌套游标循环   create or replace procedure xh_number_186_diff_p is  begin    DECLARE      ...
  • u013028136
  • u013028136
  • 2014年03月11日 15:17
  • 2256

存储过程中循环的使用

/****** 对象: 存储过程 dbo.get_zb_count 脚本日期: 2007-05-18 15:34:33 ******/  CREATE PROCEDURE get_zb_coun...
  • xiaoyi92
  • xiaoyi92
  • 2011年12月07日 09:30
  • 18555

存储过程:loop

drop table if exists t; create table t (s1 int); insert into t values (5); select * from t;...
  • seeds_home
  • seeds_home
  • 2012年08月20日 10:37
  • 2004

oracle存储过程的动态游标的简单例子

CREATE OR REPLACE PROCEDURE testp(p_value IN VARCHAR2) IS TYPE ref_cursor_type IS REF CUR...
  • u012745028
  • u012745028
  • 2016年10月05日 15:54
  • 4713

Oracle存储过程,游标使用

Oracle存储过程: 语法: CREATE [OR REPLACE] PROCEDURE procedure_name (arg1 [mode1] datatype1,arg2 [mode2]...
  • aqszhuaihuai
  • aqszhuaihuai
  • 2011年03月11日 21:31
  • 27724
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:oracle 存储过程之游标(loop)使用
举报原因:
原因补充:

(最多只允许输入30个字)