Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Oracle »

Error al invocar una funcion con SELECT

Estas en el tema de Error al invocar una funcion con SELECT en el foro de Oracle en Foros del Web. Hola a todos... Tengo una BD que estaba en 9i y se hizo la migración a 11g, previo a esto se realizó la migración en ...
  #1 (permalink)  
Antiguo 07/06/2011, 08:40
 
Fecha de Ingreso: febrero-2011
Mensajes: 9
Antigüedad: 13 años, 2 meses
Puntos: 1
Pregunta Error al invocar una funcion con SELECT

Hola a todos...

Tengo una BD que estaba en 9i y se hizo la migración a 11g, previo a esto se realizó la migración en 2 ambientes con las mismas características y todo funciono perfectamente, pero en esta instancia se me presenta el siguiente problema:

Tengo un función FN_VALIDAR(parametro) que valida si el parámetro existe en una tabla, si ya existe me retorna 1 y si no existe me retorna 0. Si la respuesta es 0 entonces procedo a cargar el dato y realizar todos los procesos respectivos si es 1 sencillamente arroja un error que el parámetro ya se cargó.

La manera actual como yo invoco esta función es así:
Código:
SELECT FN_VALIDAR ('ABC123') INTO Respuesta FROM Dual;
Al hacer un debug al bloque me doy cuenta que la función se esta invocando 2 veces por consiguiente la primera vez que lo ejecuta me retorna 0 y realiza la carga pero antes de salirse del bloque vuelve a invocar la función la cual ya retorna un 1 y esto hace que el proceso no continúe.

Ya probé de la siguiente manera:
Código:
Respuesta:= FN_VALIDAR('ABC123');
Para este caso funciona correctamente y lo invoca una sola vez.

Si solo tuviera que cambiar esta línea de código no tendría inconveniente, pero la aplicación tiene varias etapas y procesos que hacen el SELECT... INTO... a una función no solo desde la BD sino también desde shell y algunos desde aplicaciones hechas en C, lo cual me tardaría mucho buscar en cada uno de los fuentes.

Ahora esto lo haría de ser necesario, pero como les comente en los otros 2 ambientes que realice la migración funciona correctamente, no sé si alguno tenga conocimiento que se debe configurar en la BD para que la función sea invocada una sola vez desde el query SELECT INTO...

Última edición por SONOFGOD; 07/06/2011 a las 08:43 Razón: Redacción

Etiquetas: funcion, retorna, select, veces
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 00:36.