Oracle的游标使用方法 三种循环
来源:互联网 发布:诺一网络水军 编辑:程序博客网 时间:2024/03/29 23:27
例: 游标 LOOP循环游标
SET SERVERIUTPUT ON
DECLARE
R_emp EMP%ROWTYPE;
CURSOR c_emp IS SELECT * FROM emp;
BEGIN
OPEN c_emp;
LOOP
FETCH c_emp INTO r_emp;
EXIT WHEN c_emp%NOTFOUND;
DBMS_OUT.PUT.PUT_LINE('Salary of Employee'||r_emp.ename||'is'|| r_emp.salary);
END LOOP;
CLOSE c_emp;
END;
带参数的游标
DECLARE
cursor c_columns(t_table_name varchar) is select column_name from user_tab_columns where table_name = t_table_name;
BEGIN
open c_columns('TABLE_NAME');
fetch c_columns into v_column;
if c_columns%found then
dbms_output.put_line('列名为:'||v_column);
end if;
close c_columns;
END;
第二种:使用while循环
open c1;
fetch c1 into v_name,v_job;
while c1%found loop
……
fetch c1 into v_name,v_job;
end loop;
close c1;
注意 这里用到了两个fetch语句!
第一个fetch语句是把游标的第一行记录赋值给相关变量,第二个fetch语句是让游标指向下一条记录。
如果没有第二个语句的话,即为死循环,不停地执行loop内的代码。
总之,使用while来循环处理游标是最复杂的方法。
第三种: for循环
for v_pos in c1 loop
v_name:= v_pos.ename;
v_job:= v_pos.ejob;
…
end loop;
可见for循环是比较简单实用的方法。
首先,它会自动open和close游标。解决了你忘记打开或关闭游标的烦恼。
其它,自动定义了一个记录类型及声明该类型的变量,并自动fetch数据到这个变量中。
我们需要注意v_pos 这个变量无需要在循环外进行声明,无需要为其指定数据类型。
它应该是一个记录类型,具体的结构是由游标决定的。
这个变量的作用域仅仅是在循环体内。
把v_pos看作一个记录变量就可以了,如果要获得某一个值就像调用记录一样就可以了。
如v_pos.pos_type
由此可见,for循环是用来循环游标的最好方法。高效,简洁,安全。
0 0
- Oracle的游标使用方法 三种循环
- oracle 游标三种循环
- oracle 游标的使用方法
- Oracle游标的使用方法以及使用for循环实现游标的原理
- oracle 几种游标循环的区别
- Oracle游标的三种用法
- oracle循环语句的几种使用方法
- PL/SQL ORACLE游标的使用方法
- Oracle PL/SQL游标的使用方法
- oracle游标的使用方法和属性
- oracle中循环游标的方式
- 游标、游标及三种循环方式笔记
- oracle循环游标
- Oracle 游标for循环
- ORACLE游标与循环
- Oracle游标for循环
- ORACLE游标循环
- oracle 之 循环、游标
- +
- whatthef
- leetcode36. Valid Sudoku
- POJ
- PHP connects Hostinger MySQL database
- Oracle的游标使用方法 三种循环
- java多线程学习5,ThreadLocal
- 死锁产生的原因以及避免死锁的算法
- CaysnPrinter安卓平台开发包接口说明文档及打印示例程序
- 数据库入门(增删查改)
- CentOS安装Nginx
- 最长递增子序列
- 任务安排问题(贪心法)
- 4.流程控制与数组