sábado, febrero 20, 2010
Oracle PL SQL Sobrecarga de metodos.....
La sobrecarga de métodos es una estrategia del lenguaje de programación que permite que diferentes métodos tengan el mismo nombre con diferente firma en el mismo bloque de código (sub programa, paquete o tipo de objeto). La firma especifica los valores de entrada y de salida. El lenguaje verifica cual procedimiento utilizar de acuerdo a la firma. Aquí les dejo un pequeño ejemplo.
create or replace package overload_util
is
procedure print_log (p_buff varchar2);
procedure get_pass (p_org_id in number, p_item in varchar2, p_exit out varchar2);
function get_pass ( p_org_id in number, p_item in varchar2)
return varchar2;
procedure principal;
end overload_util;
create or replace package body overload_util
is
procedure print_log (p_buff varchar2) is
begin
dbms_output.put_line (p_buff);
end;
procedure get_pass (
p_org_id in number
, p_item in varchar2
, p_exit out varchar2)
is
begin
p_exit := ' ITS A PROCEDURE';
exception
when others then
print_log ('Error: '||SQLERRM );
p_exit := 'Error: '||SQLERRM;
end;
function get_pass (p_org_id in number, p_item in varchar2)
return varchar2
is
begin
return 'ITS A FUNCTION';
exception
when others then
print_log ('Error: '||SQLERRM );
return 'Error: '||SQLERRM;
end;
procedure principal
is
vproc varchar2(50);
vfunc varchar2(50);
begin
get_pass(1,'ITEM', vproc);
vfunc := get_pass (1,'ITEM');
print_log('PROCEDURE: '||vproc);
print_log('FUNCTION: '||vfunc);
exception
when others then
print_log ('ERROR PRINCIPAL:'|| SQLERRM);
end principal;
end overload_util;
Con el sig. bloque anónimo, previamente habilitamos y limpiamos el buffer del dbms.
declare
begin
overload_util.principal;
end;
Resultado de la ejecución
PROCEDURE: ITS A PROCEDURE
FUNCTION: ITS A FUNCTION
Suscribirse a:
Entradas (Atom)