RE:Función que devuelva mas de una variables
Saludos...
Puedes hacer uso de los procedimientos, los parametros que tiene un procedimiento son de tipos IN, OUT o INOUT, es decir, puedes especificar varios parametros de entrada IN (por defecto), de salida OUT y de entrada/salida INOUT. En tu caso usarias los parametros de entrada IN que desees y los OUT seran los valores que te arrojara el procedimiento.
Ej.
--------------------------------------------
Create procedure empleado(ParCodigo number, ParNombre OUT varchar2, ParApellido OUT varchar2, ParDireccion OUT varchar2) is
begin
select firstname, lastname, address into ParNombre, ParApellido, ParDireccion from emp where cod = ParCodigo;
end;
---------------------------------------------------
y si lo quieres llamar desde una forma, lo ejecutarias de la siguiente manera:
Antes:
:codigo = 1
:nombre = Null
:apellido = Null
:direccion = Null
Ejecucion:
empleado(:codigo,:nombre,:apellido,:direccion);
Despues:
:codigo = 1
:nombre = 'MARK'
:apellido = 'SMITH'
:direccion = 'CALIFORNIA EE.UU.'
Espero te sirva