| Oracle FAQ | Your Portal to the Oracle Knowledge Grid | |
Home -> Community -> Usenet -> c.d.o.server -> Re: Newbie Question: Procedures vs. Functions
Idea behind a function is to return a single value.
create or replace function get_sysdate
return date is
BEGIN
/* ************** Reference from LIBRARY form LIB *************
*/
/*
This function retrieves today's date. It has time element in it
also.
*/
DECLARE
todays_date date;
cursor c1 is
select sysdate
from dual;
BEGIN
open c1;
fetch c1
into todays_date;
close c1;
return(todays_date);
END;
END;
where todays_date_time is a PL/SQL date type variable.
create or replace procedure get_session_info
(user_id in out varchar2,
todays_date in out date,
oracle_session_id in out varchar2 )
is
This procedure retrieves the Oracle user(id), sysdate and Oracle sessionid into the output parameters. */
BEGIN -- BLOCK 1
select user, sysdate, userenv('sessionid')
into user_id, todays_date, oracle_session_id
from dual;
--
dbms_output.put_line('User: '||user_id||
' Today''s Datetime: '||
to_char(todays_date,'dd-MON-yyyy hh24:mi:ss'));
dbms_output.put_line('Oracle Session ID: '||oracle_session_id );
EXCEPTION
when others then
null;
/*
Do not expect an EXCEPTION in this procedure. Safety feature.
*/
END; -- BLOCK 1
END; -- of procedure get_session_info
Usage would be something like, if called in another procedure or function where the parameters are the PL/SQL variable declared in that othe rprocedure or function.
get_session_info
( global_update_user_id,
global_update_date,
temp_varchar21
);
In SQL*Plus you can execute a procedure or function if it does not have any
parameters passed to it,
or returned(procedures) from it. For example if the procedure simply
updates a table etc.
create or replace procedure update1
BEGIN
update table1 set .......
END;
In SQL*Plus, you can simply say
execute update1;
Good luck !!!
suresh.bhat_at_mitchell-energy.com
Scott C. <sdcairns_at_mindspring.com> wrote in article <6pksok$t2n$1_at_camel0.mindspring.com>... > What's the difference between a PROCEDURE and a FUNCTION? Where would I use
> one versus the other? > > >Received on Wed Jul 29 1998 - 12:39:14 CDT
![]() |
![]() |