将该代码复制,保存为cursor-open-for.tst,在PL/SQL中作为测试脚本可以直接运行
表结构如下:
create table products
(
product_id number,
product_type_id number,
name varchar2(100),
price number
);
------------------------------------
corsor-open-for.tst
------------------------------------
declare
-- 1声明一个引用游标类型(ref cursor 是指向游标的指针)
type t_product_cursor is
ref cursor return products%rowtype;
-- 2声明变量
-- 声明一个类型为引用游标类型的变量
v_product_cursor t_product_cursor;
v_product v_product_cursor%rowtype;
begin
-- 3open-for方式打开游标(该句执行后,符合条件的数据会加载到v_product_cursor)
open v_product_cursor for
select product_id,product_type_id,name,price
from products
where price < 50;
--
loop
-- 4抓取数据
fetch v_product_cursor into v_product;
exit when v_product_cursor%notfound;
dbms_output.put_line(' p_id = ' || v_product.product_id ||
' p_type_id = ' || v_product.product_type_id ||
' p_name = ' || v_product.name ||
' p_price = ' || v_product.price);
end loop;
-- 5关闭游标
close v_product_cursor;
end;