oracle 游标用法实例!

 我来答
wangzhiqing999
推荐于2017-10-01 · TA获得超过1.6万个赞
知道大有可为答主
回答量:7048
采纳率:100%
帮助的人:3351万
展开全部
CREATE TABLE test_main (
id INT,
value VARCHAR(10),
PRIMARY KEY(id)
);

INSERT INTO test_main(id, value) VALUES (1, 'ONE');
INSERT INTO test_main(id, value) VALUES (2, 'TWO');
INSERT INTO test_main(id, value) VALUES (3, 'THREE');

DECLARE
-- 定义游标.
CURSOR c_test_main IS
SELECT id, value FROM test_main;
-- 保存游标数据的变量
v_main_data c_test_main%ROWTYPE;
BEGIN
-- 打开游标.
OPEN c_test_main;
LOOP
-- 填充数据(主表).
FETCH c_test_main INTO v_main_data;
-- 假如没有检索到(主表)数据,结束循环处理
Exit when c_test_main%NOTFOUND;

dbms_output.put_line(TO_CHAR(v_main_data.id)
|| ':' || v_main_data.value );

END LOOP;
-- 关闭游标
CLOSE c_test_main;
END;
/

参考资料: http://hi.baidu.com/wangzhiqing999/blog/item/db33b52993b8e23a359bf774.html

lc19920606
2011-07-07 · TA获得超过561个赞
知道答主
回答量:338
采纳率:100%
帮助的人:290万
展开全部
使用scott用户
游标变量(动态游标)
declare
type t_cur is ref cursor;
many_data t_cur;
v_row_data emp%rowtype;
begin
open many_data for select * from emp;
fetch many_data into v_row_data;
dbms_output.put_line(v_row_data.ename);
close many_data;
end;
//创建程序包,在包中定义游标类型
create package cur_type_pack
is
type t_cur is ref cursor;
end;
//创建存储过程,带有游标类型的输出参数
create procedure emp_data_pro(v_emp_data out cur_type_pack.t_cur)
is
begin
open v_emp_data for select * from emp;
end;
//使用语句块调用带有游标类型输出参数的存储过程
declare
v_rec cur_type_pack.t_cur;
v_row_data emp%rowtype;
begin
emp_data_pro(v_rec);
fetch v_rec into v_row_data;
dbms_output.put_line(v_row_data.ename);
close v_rec;
end;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式