4000 Oracle游标的使用方法以及使用for循环实现游标的原理
2016-07-01 23:44
711 查看
select * from tb_grade t for update
--1普通游标(显示游标)
declare
--定义游标 用于查询表结构的数据集
cursor grade_cursor is select cname from tb_grade;
--定义行变量 可以是 游标%rowtype 也可以是 表%rowtype
grade_row grade_cursor%rowtype;
begin
--打开游标
open grade_cursor;
loop
--通过游标抓取一行
fetch grade_cursor into grade_row;
--判断游标是否到了最后一行
exit when grade_cursor%notfound;
--逻辑语句应该在exit when之后
syso(grade_row.cname);
end loop;
--关闭游标
close grade_cursor;
end;
--2引用游标(动态游标)(显示游标)
declare type dyncCursor is ref cursor;
cursor_tmp dyncCursor;
grade_row tb_grade%rowtype;
begin
--打开游标
open cursor_tmp for select * from tb_grade;
loop
--通过游标抓取一行
fetch cursor_tmp into grade_row;
--判断游标是否到了最后一行
exit when cursor_tmp%notfound;
--逻辑语句应该在exit when之后
syso(grade_row.cname);
end loop;
--关闭游标
close cursor_tmp;
end;
--3带参数游标
declare
--定义游标 用于查询表结构的数据集
cursor grade_cursor(id1 number) is select cname from tb_grade where cid=id1;
--定义行变量 可以是 游标%rowtype 也可以是 表%rowtype
grade_row grade_cursor%rowtype;
begin
--打开游标
open grade_cursor(4);
loop
--通过游标抓取一行
fetch grade_cursor into grade_row;
--判断游标是否到了最后一行
exit when grade_cursor%notfound;
--逻辑语句应该在exit when之后
syso(grade_row.cname);
end loop;
--关闭游标
close grade_cursor;
end;
--隐式游标 oracle负责帮程序 打开关闭抓取游标 常用的方式
declare
cursor grade_cursor is select cname from tb_grade;
begin
for stu_tmp in grade_cursor loop
syso(stu_tmp.cname);
end loop;
end;
--普通for循环输出表记录行 作业
/**
List list=new ArrayList();
int count=list.size();
for(int v=0;v<count;v++){
V v=list.get(v);
}
**/
declare rowco number;
rowdata tb_grade%rowtype;
begin
select count(rowid) into rowco from tb_grade;
for(v in 1..rowco) loop
select * into rowdata from tb_grade where rownum=v;
syso(rowdata.cname);
end loop;
end;
--1普通游标(显示游标)
declare
--定义游标 用于查询表结构的数据集
cursor grade_cursor is select cname from tb_grade;
--定义行变量 可以是 游标%rowtype 也可以是 表%rowtype
grade_row grade_cursor%rowtype;
begin
--打开游标
open grade_cursor;
loop
--通过游标抓取一行
fetch grade_cursor into grade_row;
--判断游标是否到了最后一行
exit when grade_cursor%notfound;
--逻辑语句应该在exit when之后
syso(grade_row.cname);
end loop;
--关闭游标
close grade_cursor;
end;
--2引用游标(动态游标)(显示游标)
declare type dyncCursor is ref cursor;
cursor_tmp dyncCursor;
grade_row tb_grade%rowtype;
begin
--打开游标
open cursor_tmp for select * from tb_grade;
loop
--通过游标抓取一行
fetch cursor_tmp into grade_row;
--判断游标是否到了最后一行
exit when cursor_tmp%notfound;
--逻辑语句应该在exit when之后
syso(grade_row.cname);
end loop;
--关闭游标
close cursor_tmp;
end;
--3带参数游标
declare
--定义游标 用于查询表结构的数据集
cursor grade_cursor(id1 number) is select cname from tb_grade where cid=id1;
--定义行变量 可以是 游标%rowtype 也可以是 表%rowtype
grade_row grade_cursor%rowtype;
begin
--打开游标
open grade_cursor(4);
loop
--通过游标抓取一行
fetch grade_cursor into grade_row;
--判断游标是否到了最后一行
exit when grade_cursor%notfound;
--逻辑语句应该在exit when之后
syso(grade_row.cname);
end loop;
--关闭游标
close grade_cursor;
end;
--隐式游标 oracle负责帮程序 打开关闭抓取游标 常用的方式
declare
cursor grade_cursor is select cname from tb_grade;
begin
for stu_tmp in grade_cursor loop
syso(stu_tmp.cname);
end loop;
end;
--普通for循环输出表记录行 作业
/**
List list=new ArrayList();
int count=list.size();
for(int v=0;v<count;v++){
V v=list.get(v);
}
**/
declare rowco number;
rowdata tb_grade%rowtype;
begin
select count(rowid) into rowco from tb_grade;
for(v in 1..rowco) loop
select * into rowdata from tb_grade where rownum=v;
syso(rowdata.cname);
end loop;
end;
相关文章推荐
- oracle对象【约束,序列,索引,视图,同义词】
- Oracle表的修改和删除以及回收站操作
- Oracle权限模型,备份和恢复
- Oracle86和92语法的连接,子查询,集合的操作
- Oracle笛卡尔积,分组,多表连接
- 未能加载文件或程序集“Oracle.DataAccess”或它的某一个依赖项。试图加载格式不正确的程序。
- oracle卸载注册表的内容部分
- Oracle排序,伪列,字符函数,数字函数,日期行数
- oracle创建表空间 10g导出数据库到 11g以及11g导入文件
- java.sql.SQLException(jdbc连接不到oracle)
- oracle11g expdp报错 ORA-06512: at "SYS.UTL_FILE", line 536
- Oracle -- 索引
- ORACLE 11g远程连接数据库
- Oracle 排序规则
- Oracle 排序规则
- Oracle 排序规则
- 数据库Oracle、Sql Server单表树形结构数据查询语句
- oracle通过DBlink连接mysql
- Oracle 创建 DBLink 的方法
- 【转】ORACLE 内置函数之 GREATEST 和 LEAST(求多列的最大值,最小值)