游标遍历%rowtype中的记录

 

篇文章中讲到%rowtype,那么如何遍历所有记录,不用每次输入特定的值去查询。那么我们使用Oracle游标

游标分为:静态游标和引用游标(动态游标)

静态游标:由用户定义(隐式游标、显示游标)结果集不变

引用游标游标:结果集变化

隐式游标:用DML操作时,自动使用隐式游标。我们可以使用隐式游标判断SQL语句执行结果

自动声明和处理的。在Session会话区,开启游标。处理后自动关闭。可以返回单行查询。

隐式游标使用:

declare

%NOTFOUND  -- 执行行没有找到。

%FOUND  --执行行找到

%ROWCOUNT --游标影响行数

%ISOPEN -- 当前游标是否打开

我们现在通过游标来看看上篇文章的例子
通过循环来遍历数据:
1、loop when循环
declare
cursor myCur is select * from hr.jobs;
oneRow hr.jobs%rowtype;
begin
       open myCur;
  loop
       fetch myCur into oneRow;
  dbms_output.put_line(oneRow.job_id ||'    ' ||onerow.job_title);
  exit when myCur%notFound;
       end loop;
  close myCur;
end;

2、while 循环
declare
cursor myCur is select * from hr.jobs;
oneRow hr.jobs%rowtype;
begin
 open myCur;
 fetch myCur into oneRow;
 while (myCur%found)
  loop
  dbms_output.put_line(oneRow.job_id ||'    ' ||onerow.job_title);
  fetch myCur into oneRow;
  end loop;
  close myCur;
end;

3、for  循环
declare
cursor myCur is select * from hr.jobs;
oneRow hr.jobs%rowtype;
begin
   for oneRow in myCur loop
 dbms_output.put_line(oneRow.job_id ||'    ' ||onerow.job_title);
   end loop;
end;

结果如下:
AD_PRES    President
AD_VP    Administration Vice President
AD_ASST    Administration Assistant
FI_MGR    Finance Manager
FI_ACCOUNT    Accountant
AC_MGR    Accounting Manager
AC_ACCOUNT    Public Accountant
SA_MAN    Sales Manager
SA_REP    Sales Representative
PU_MAN    Purchasing Manager
PU_CLERK    Purchasing Clerk
ST_MAN    Stock Manager
ST_CLERK    Stock Clerk
SH_CLERK    Shipping Clerk
IT_PROG    Programmer
MK_MAN    Marketing Manager
MK_REP    Marketing Representative
HR_REP    Human Resources Representative
PR_REP    Public Relations Representative

 

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

转载于:http://blog.itpub.net/17179887/viewspace-707866/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值