比较好的取游标数据的方法,特此记下:
create or replace package persistpkg as
type t_BOOkTable is table of book.isbn%type index by BINARY_INTEGER;--联合数组的定义
v_maxrows number:=4;
procedure readbooks(p_booktable out t_booktable,p_numrows out number);
end persistpkg;
/
create or replace package body persistpkg as
cursor c_basicbooks is
select isbn
from books
where category='ORACLE Basics'
procedure readbooks(p_booktable out t_booktable,p_numrows out number)is
v_done boolean :=FALUSE;--用于判断标志
V_NUMROWS NUMBER:=1;
BEGIN
--我觉得精彩的部分
IF NOT c_BASICBOOKS%ISOPEN THEN
OPEN C_BASICBOOKS;
END IF;
--可以判断游标里面是否有数据
while not v_done loop
fetch c_basicbooks into p_booktable(v_numrows);--将游标的数据插入数组
if c_basicbooks%notfound then
close c_basicbooks;
v_done:=TURE;
else
v_numrows:=v_numrows+1;
if v_numrows>v_maxrows then
v_done:=ture;
end if;
end loop;
p_numrows:=v_numrows-1;
end readbooks;
end persistpkg;
/
[@more@]
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/733767/viewspace-998653/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/733767/viewspace-998653/