LEER VALORES DE CONSTANTES DE PAQUETERIA DE BASE DE DATOS DESDE ORACLE FORMS

create or replace FUNCTION pa_ObtenerValorConstante (p_constante IN VARCHAR2)

RETURN VARCHAR2

IS

v_Dummy PA_detalle_constantes.valor%TYPE;

PROCEDURE RegistrarConstante (p_constante IN VARCHAR2, p_valor IN VARCHAR2)

IS

PRAGMA AUTONOMOUS_TRANSACTION;

BEGIN

INSERT INTO pa_detalle_constantes (des_constante, valor)

VALUES (p_constante, p_valor);

COMMIT;

EXCEPTION

WHEN DUP_VAL_ON_INDEX

THEN

NULL;

END RegistrarConstante;

BEGIN

SELECT valor

INTO v_Dummy

FROM pa_detalle_constantes

WHERE des_constante = p_constante;

RETURN v_Dummy;

EXCEPTION

WHEN NO_DATA_FOUND

THEN

EXECUTE IMMEDIATE ('begin :1 := ' || p_constante || '; end;')

USING IN OUT v_Dummy;

RegistrarConstante (p_constante, v_Dummy);

RETURN v_Dummy;

END pa_ObtenerValorConstante;
Ejemplo:

select pa_ObtenerValorConstante ('CONSTANTE') from dual;

JulexFR