日期:2014-05-17  浏览次数:20816 次

求解,在package body中取得值。
在package body中。

我想实现,查一个表的一个字段。
将rownum=1,2,3的值,放入3个变量中。这3个变量也许有1个,也许有2个,也许有3个。

因为不熟悉oracle,所以想问问,这该怎么写?

麻烦大家了~

------解决方案--------------------
最简单的写法动态SQL
------解决方案--------------------
你可以写一个游标,存放rownum=1,2,3....的值,到时间再调用游标
------解决方案--------------------
可以写一个带参数的游标
------解决方案--------------------
package有包头和包体,给你个例子吧:
包头:
CREATE OR REPLACE PACKAGE pack_demo 
AS
procedure proc_demo;
END pack_demoj;

包体:
CREATE OR REPLACE PACKAGE BODY pack_demo 
AS
my_cur mytable%TYPE;
CURSOR my_curs IS
SELECT * FROM mytable WHERE rownum<=3; --声明游标
BEGIN
OPEN my_curs; --打开游标
LOOP
FETCH my_curs INTO my_cur; --一行一行的提取
EXIT WHEN toy_cur%NOTFOUND;
DBMS_OUTPUT.PUT_LINE('第一行:'||my_cur.字段1||my_cur.字段2||my_cur.字段3);
END LOOP;
CLOSE my_curs; --关闭游标
END;

END pack_demo;