He creado una funcion de usuario a la que le paso un código un correlativo (en la tabla tengo varias filas de diferentes valores y su respectivo correlativo) y lo que hace dicha funcion es incrementar el correaltivo (del valor pasado como parámetro) y me devuelve como salida el correlativo incrementado. La funcion es la sgte:

CREATE FUNCTION SGCRED.CLAVEPRIM (
   PCOD INTEGER )
RETURNS BIGINT LANGUAGE SQL
   SPECIFIC SGCRED.CLAVEPRIM
   NOT DETERMINISTIC
   MODIFIES SQL DATA
   CALLED ON NULL INPUT

   DISALLOW PARALLEL
   BEGIN ATOMIC
       DECLARE X BIGINT ;
UPDATE SGCRED.CORRELATIVOS SET TABCORRELATIVO = TABCORRELATIVO + 1 WHERE TABCODIGO = PCOD ; SELECT TABCORRELATIVO INTO X FROM SGCRED . CORRELATIVOS WHERE TABCODIGO = PCOD ;
       RETURN X ;
   END  ;

Resulta que a la hora de llamarla con la intrucción (se supone que esto ejecuta la función desde la ventana de ejecución de scripts) :
SELECT SGCRED.CLAVEPRIM(5) FROM SYSIBM.SYSDUMMY1

Esta instrucción debe incrementarme el correlativo del valor cuyo código es "5" y devolverme el sgte correaltivo; pero no lo hace. Lo hace correctamente en la misma ventana de ejecución de sripts SQL, incluso lo muestra cuando hago la consulta desde la misma ventana; pero al momento de cerrarla y abrir otra para hacer la consulta mi tabla no me la actualiza. Es como si "no hiciera nada". Es decir No actualiza el archivo CORRELATIVOS. En otra palabras mi funcion simplemente no funciona.
No se que pasa no sé si será un bug o algo así
Alguna idea? Algún PTF que falta?
Estoy en la versión V5R3


Muchas Gracias

----------------------------------------
Carlos Augusto Correa García
Area de Desarrollo de Sistemas
CMAC PIURA S.A.C

__________________________________________________
Forum.HELP400 es un servicio más de NEWS/400.
© Publicaciones Help400, S.L. - Todos los derechos reservados
http://www.help400.es
_____________________________________________________

Para darte de baja visita la siguente URL:
http://coyote.combios.es/mailman/listinfo/forum.help400

Responder a