oracle里头,一个存储过程需要返回多个结果集,应该咋整

oracle里面,一个存储过程需要返回多个结果集,应该咋整
oracle里面,一个存储过程需要返回多个结果集
t1:条件*******
t2:表1的从表,select t2.* from t2 where t1id in (t1.id where t1条件)
t3: 表1的从表,select t3.* from t3 where t1id in (t1.id where t1条件)
t4: 表1的从表,select t4.* from t4 where t1id in (t1.id where t1条件)
t5: 表1的从表,select t5.* from t5 where t1id in (t1.id where t1条件)

应该咋整
要用临时表?还是要每个结果集的 in里面都要加上t1的条件?
我也是个菜鸟,刚接触oracle,但是我还是希望有高效点的解决办法

------解决方案--------------------
直接将返回类型定义为cursor呗。
根据不同条件打开不同的游标,并将游标返回就行了。
------解决方案--------------------
定一个包,包里有一个cursor ,返回结果直接引用这个包就OK了。
------解决方案--------------------

--給你一個例子參考一下
--REF CURSOR返回結果集,你可以設置多個OUT參數分別代表不同的結果集
CREATE OR REPLACE PROCEDURE testka02(
    p_co      IN VARCHAR2,
    p_classid IN VARCHAR2,
    p_tja     OUT sys_refcursor
)AS

BEGIN
   OPEN p_tja FOR SELECT * FROM student WHERE co=p_co AND classid LIKE p_classid ;
   EXCEPTION WHEN No_Data_Found THEN
     p_tja:=NULL;
END testka02;



------解决方案--------------------
用游标...........