Oracle FAQ Your Portal to the Oracle Knowledge Grid
HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US
 

Home -> Community -> Usenet -> c.d.o.misc -> Re: PL/SQL 2 selects, 1 result set

Re: PL/SQL 2 selects, 1 result set

From: Daniel Morgan <damorgan_at_exesolutions.com>
Date: Mon, 17 Jun 2002 00:13:20 -0700
Message-ID: <3D0D8C10.80763D0A@exesolutions.com>


Ken Chesak wrote:

> I need to return 1 result set from 2 separate SQL statements. The results
> may be 1 row or many rows.
> I am using an array to collect the data, then would like to use a refcursor
> as a return parameter. Oracle 8.1.7, thanks.
>
> type refcur is ref cursor;
> TYPE XYZ IS RECORD ( unit VARCHAR2(3), bjn number(10) );
> TYPE the_array IS TABLE OF XYZ INDEX BY BINARY_INTEGER;
>
> procedure d
> ( p_output out refcur )
> is
> unit_ref refcur;
> bjn_ref refcur;
> output the_array;
> cnt number := 0;
> v_cnt number := 0;
> s_cnt number := 0;
>
> begin
> for x in (
> select id_unit, max(sort_seq)
> from distribution_rule a
> where a.cd_type = 'UNIT'
> and a.is_active = 'Y'
> group by id_unit )
> loop
> cnt := cnt + 1;
> output(cnt).unit := x.id_unit; << first result
> end loop;
>
> s_cnt := cnt;
> cnt := 0;
>
> for x in (
> select id_bjn, max(sort_seq)
> from distribution_rule a
> where a.cd_type = 'CASE'
> and a.is_active = 'Y'
> group by id_bjn)
> loop
> cnt := cnt + 1;
> output(cnt).bjn := x.id_bjn; <<second result
> end loop;
>
> open p_output for select 1 from dual; <<just to return something
>
> --select * from table(output); <<< move to refcursor ???
>
> end;
> end;

Do you have a question?

Daniel Morgan Received on Mon Jun 17 2002 - 02:13:20 CDT

Original text of this message

HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US