博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
pl/sql 游标遍历%rowtype中的记录 转
阅读量:6819 次
发布时间:2019-06-26

本文共 1689 字,大约阅读时间需要 5 分钟。

转自

"

如何遍历所有记录,不用每次输入特定的值去查询。那么我们使用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

作者:tshfang 

"

如果第一种不用“exit when”, 单单用"exit", 那就在loop里放一个 if 语句把 exit 放在里面.

转载于:https://www.cnblogs.com/ndxsdhy/archive/2011/04/11/2012787.html

你可能感兴趣的文章
JavaScript的浏览器兼容性问题小结。
查看>>
Oracle Hint的用法
查看>>
Postfix邮件系统
查看>>
《编写可读代码的艺术》读书文摘--第一部分 表面层次的改进
查看>>
使用Nodejs创建基本的网站 Microblog--《Node.js开发指南》 3
查看>>
网管工作是否值得做下去?
查看>>
神行者PD10-adb push逃脱ro权限
查看>>
JPA(四)之实体关系一对一
查看>>
如何使用羊驼自动生成缩略图的功能。
查看>>
定制化Azure站点Java运行环境(1)
查看>>
inotify用法简介及结合rsync实现主机间的文件实时同步
查看>>
php 判断手机登陆
查看>>
git 问题
查看>>
Fedora18设置终端快捷键 和 桌面快捷方式
查看>>
取消NavigationBar左右两边的空隙
查看>>
修改symfony sfDoctrineGuardPlugin验证密码的方法
查看>>
mysql 创建日期列之timestamp
查看>>
Visual Studio统计有效代码行数
查看>>
Qt连接Oracle数据库常见问题
查看>>
45个实用的JavaScript技巧、窍门和最佳实践
查看>>