Skip to Main Content

SQL & PL/SQL

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

Return more than one OUT parameter from stored procedure called in sql

pollywogOct 7 2010 — edited Oct 7 2010
starlight rider had originally posted a question about retrieving multiple output parameters in seperate columns in a select statement which got me wondering
about a which is better kind of approach
create or replace procedure myproc (p_in in number, p1_out out number, p2_out out number, p3_out out number) as
begin
p1_out := p_in * 2;
p2_out := p_in + p_in;
p3_out := p_in + 20;
end;

create or replace function func1 (p_in number) return number as
 p1_out  number;
 p2_out  number;
 p3_out  number;
begin
    myproc(p_in,  p1_out,  p2_out, p3_out);
    return p1_out;
end;
 
create or replace function func2 (p_in number) return number as
 p1_out  number;
 p2_out  number;
 p3_out  number;
begin
    myproc(p_in,  p1_out,  p2_out, p3_out);
    return p2_out;
end;

create or replace function func3 (p_in number) return number as
 p1_out  number;
 p2_out  number;
 p3_out  number;
begin
    myproc(p_in,  p1_out,  p2_out, p3_out);
    return p3_out;
end;

select level, func1(level), func2(level), func3(level) from dual connect by level < 201;
1) does the select statement above actually call myproc 3 times for each row or are the results cached somehow so it only does it once per row?

2) if it does actually call it 3 times for each row is it a better idea to make one function and concat the three columns together somehow and then parse it
out for each column or have 3 seperate function calls as I have above.
create or replace function func4 (p_in number) return varchar2  as
 p1_out  number;
 p2_out  number;
 p3_out  number;
begin
    myproc(p_in,  p1_out,  p2_out, p3_out);
    return p1_out||',' ||p2_out||','||p3_out;
end;
Comments
Locked Post
New comments cannot be posted to this locked post.
Post Details
Locked on Nov 4 2010
Added on Oct 7 2010
2 comments
2,012 views