store results from function into two seperate variables???
Date: 3 Aug 2005 14:58:24 -0700
Message-ID: <1123106304.807955.65060_at_z14g2000cwz.googlegroups.com>
I have created a package the returns a ref cursor. The package is as follows:
CREATE OR REPLACE PACKAGE p_storedivreg_hist is
- Author : JEFFC
- Created : 6/20/2005 9:20:18 AM
- Purpose : Get division history for a store based on a date
- Public type declarations type resultset is REF CURSOR;
- Public function and procedure declarations function results(dbctr_in NUMBER) return resultset;
end p_storedivreg_hist;
create or replace package body p_storedivreg_hist . is
- Function and procedure implementations function results(dbctr_in NUMBER) return resultset IS rset p_storedivreg_hist.resultset; BEGIN OPEN rset FOR SELECT c.dbdiv, r.dbctr dbreg FROM centers c, centers d, centers r WHERE c.dbctr = dbctr_in AND c.dbdiv = d.dbctr AND d.dbdiv = r.dbctr AND c.dbdate = (SELECT MAX(dbdate) FROM centers WHERE dbdate <= SYSDATE AND dbctr = c.dbctr) AND d.dbdate = (SELECT MAX(dbdate) FROM centers WHERE dbdate <= SYSDATE AND dbctr = d.dbctr) AND r.dbdate = (SELECT MAX(dbdate) FROM centers WHERE dbdate <= SYSDATE AND dbctr = r.dbctr);
RETURN rset;
end;
end p_storedivreg_hist;
When I run it in sqlplus;
select p_storedivreg_hist.results(32) from dual;
I get:
CURSOR STATEMENT : 1
CURSOR STATEMENT : 1
DBDIV DBREG
---------- ----------
1683 2943
1 row selected.
1 row selected.
Or I can run it by:
SQL> var c refcursor
SQL> exec :c := p_storedivreg_hist.results(32);
PL/SQL procedure successfully completed.
op_user_at_inotest> print c;
DBDIV DBREG
---------- ----------
1683 2943
[Quoted] My question is, is there a way to store the results into two seperate
varaibles?
[Quoted] select p_storedivreg_hist.results(32) into x,y from dual;
Does not work.
Received on Wed Aug 03 2005 - 23:58:24 CEST