Si queremos saber los parámetros de entrada o salida de una función o procedimiento, basta con ejecutar esta select:
SELECT
obj.name package_or_procedure,
arg.procedure$ procedure,
arg.argument,
arg.pls_type,
arg.position#,
arg.sequence#,
decode(arg.in_out, null,’IN’, 1,’OUT’, 2,’IN/OUT’, ‘Desconocido’) in_out
FROM
sys.argument$ arg,
sys.obj$ obj
WHERE
obj.obj# = arg.obj#
AND obj.name = ‘DIAS_EFEC_JORNADA_MES’ ORDER BY 1, 2, 5, 6;
Esto nos devolverá un registro por cada parámetro, comenzando por el de salida, con el tipo de variable que es, la posición y si es IN, OUT o IN/OUT:
DIAS_EFEC_JORNADA_MES NUMBER 0 1 OUT
DIAS_EFEC_JORNADA_MES P_CH_HABIL VARCHAR2 1 2 IN
DIAS_EFEC_JORNADA_MES SALIDA VARCHAR2 2 3 IN/OUT