关于多表查询的存储过程如何返回结果集?
比如: 
             create   table   A(a1,a2,a3,a4) 
             create   table   B(b1,a1,b2,b3) 
 这两个表是主从关系的表,表A的主键是表B的外键,我想用存储过程返回两个表,或者更多个表内连接后查询的结果集,这个Oracle的存储过程应该怎么写? 
 请大家尽量写详细点,谢谢大家!
------解决方案--------------------建议基于两个表的view,然后存储过程使用view不就可以了嘛? 
 比如: 
 create view yourview as select A.a1,A.a3,B.b1,B.b4 from A,B where A.a1=B.b1;   
 存储过程: 
 create or replace procedure selecttest is 
   cursor select_cur is 
   select v.a1,v.a3,v.b1,v.b4 from yourview v where v.a1= '**** '; 
   v_a1       number; 
   v_a3       number; 
   v_b1       number; 
   v_b4       number; 
 begin 
     open select_cur; 
      loop 
     fetch select_cur into v_a1,v_a2,v_b1_v_b4; 
     exit when select_cur%NOTFOUND; 
     dbms_output.put_line( 'recored: ' ' '||v_a1|| ', '||v_a2|| ' ' ' '); 
     end loop; 
     close select_cur; 
       return; 
 end select_free; 
 / 
------解决方案--------------------end select_free; 
 改为 
 end selecttest;
------解决方案--------------------1建议不用视图 
 2先要定义package的。 
 下面是个简单例,自己更改罢   
 CREATE OR REPLACE PACKAGE pkg_test 
 AS 
 TYPE myrctype IS REF CURSOR; 
 PROCEDURE get(p_rc OUT myrctype); 
 END pkg_test; 
 /   
 CREATE OR REPLACE PACKAGE BODY pkg_test 
 AS 
 PROCEDURE get( p_rc OUT myrctype) 
 IS 
 sqlstr VARCHAR2 (500); 
 BEGIN 
 sqlstr:=v`/`vselect id,name from deptv`/`v; 
 OPEN p_rc FOR sqlstr; 
 END get; 
 END pkg_test;