Oralce SQL过程初步


一个简单的过程通常由两部分组成:
1、声明部分:以declare开始;
2、执行部分:以begin开始,以最后一个end作为整个执行体结束的标志。

这里面也引用了游标的概念。

游标的概念有点类似于C++的指针,有显式游标和隐式游标,下面显示了显式游标的用法:
创建游标:
cursor c_subid is
select ti.subscriber_id, ti.name from tmp_whf_osdsubid ti;

打开游标:
open c_subid;

将游标指向的值取出:
fetch c_subid into id,name;

按照取出的值进行操作:
while c_subid % found loop
    select * from tmp_abc t where t.id = id and t.name = name;
    fetch c_subid into id, name;--将游标指向下一个值;
end loop;

关闭游标:
close c_subid;

游标的属性:
Cursor Attributes 
Name  Description
%FOUND               Returns TRUE if record was fetched successfully, FALSE otherwise.
%NOTFOUND       Returns TRUE if record was not fetched successfully, FALSE otherwise.
%ROWCOUNT     Returns number of records fetched from cursor at that point in time.
%ISOPEN              Returns TRUE if cursor is open, FALSE otherwise.

用法示例:
declare
      tempsubid number(18) := 0;
      mflag integer := 1;
      mtype integer := 1;
      message varchar2(200) := '';
      cursor c_subid is
      select ti.subscriber_id from tmp_whf_osdsubid ti;
begin
      open c_subid;
      fetch c_subid into tempsubid;
      while c_subid%found loop
          insert into tmp_whf_osdsubmessage values(tempsubid, message, mtype, mflag);
          fetch c_subid into tempsubid;
      end loop;
      commit;
      close c_subid;
end;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值