SQL>
SQL> create or replace
2 package utilities as
3 procedure swap( p_parm1 in out number,
4 p_parm2 in out number );
5 procedure swap( p_parm1 in out varchar2,
6 p_parm2 in out varchar2 );
7 procedure swap( p_parm1 in out date,
8 p_parm2 in out date );
9 end utilities;
10 /
Package created.
SQL>
SQL> create or replace
2 package body utilities as
3
4 procedure swap( p_parm1 in out number,
5 p_parm2 in out number ) is
6 l_temp number;
7 begin
8 dbms_output.put_line( 'Swapping number' );
9 l_temp := p_parm1;
10 p_parm1 := p_parm2;
11 p_parm2 := l_temp;
12 end swap;
13
14 procedure swap( p_parm1 in out varchar2,
15 p_parm2 in out varchar2 ) is
16 l_temp varchar2(32767);
17 begin
18 dbms_output.put_line( 'Swapping varchar2' );
19 l_temp := p_parm1;
20 p_parm1 := p_parm2;
21 p_parm2 := l_temp;
22 end swap;
23
24 procedure swap( p_parm1 in out date,
25 p_parm2 in out date ) is
26 l_temp date;
27 begin
28 dbms_output.put_line( 'Swapping date' );
29 l_temp := p_parm1;
30 p_parm1 := p_parm2;
31 p_parm2 := l_temp;
32 end swap;
33
34 end utilities;
35 /
Package body created.
SQL>
SQL>
SQL> declare
2 l_num1 number := 1;
3 l_num2 number := 2;
4 l_date1 date := sysdate;
5 l_date2 date := sysdate + 1;
6 begin
7 utilities.swap( l_num1, l_num2 );
8 dbms_output.put_line( 'l_num1 = ' || l_num1 );
9 dbms_output.put_line( 'l_num2 = ' || l_num2 );
10 utilities.swap( l_date1, l_date2 );
11 dbms_output.put_line( 'l_date1 = ' || l_date1 );
12 dbms_output.put_line( 'l_date2 = ' || l_date2 );
13 end;
14 /
Swapping number
l_num1 = 2
l_num2 = 1
Swapping date
l_date1 = 12-JUN-08
l_date2 = 11-JUN-08
PL/SQL procedure successfully completed.
SQL>
|