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