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

如何利用存储过程完成以下功能
1。要求返回多条记录
2。记录的列结构不固定,比如,有些条件下是3列,有些条件下是5列,有些条件下是12列,
3。记录中的数据,都是根据现有的数据统计出来。(这个似乎不难,呵呵)

------解决方案--------------------
用oracle的包,来实现返回多条记录!!
------解决方案--------------------
REF CURSOR
------解决方案--------------------
CREATE OR REPLACE PACKAGE ll_01
AS
TYPE v_cursor IS REF CURSOR;
PROCEDURE p_01(
p_cursor OUT v_cursor
);
end ll_01;

CREATE OR REPLACE PACKAGE body ll_01
AS
PROCEDURE p_01(
p_cursor OUT v_cursor
)
is
begin
OPEN p_cursor FOR select ....;
end p_01 ;
end ll_01;


--------上面就是一个返回记录集的方法,可以满足lz要求
------解决方案--------------------
学习

------解决方案--------------------
不好意思,我忘记了一个重要的限制条件。
就是,这个返回的数据集,不是一个 'select '语句就能查询出来的。否则就可以直接用cursor了。计算这个数据集过程,是很复杂的。
--
我只是说一种类似的方法
如果过程复杂
你看可以用存储过程计算结果
结果放入临时表之类的