Hola Foro!!
Tengo un problemita con un PA que se me queda en un loop, de hecho lo que
estaba probando era eso, de que no se me quedara colgado, les envío el codigo
para que lo analizen y me den su opinión al respecto:
-- Generar SQL
-- Versión: V5R2M0 020719
-- Generado en: 31/08/10 14:42:33
-- Base de datos relacional: S105V3CM
-- Opción de estándares: DB2 UDB AS/400
CREATE PROCEDURE LIBDAT.PA_POSTPPRICING ( )
LANGUAGE SQL
SPECIFIC LIBDAT.PA_POSTPPRICING
NOT DETERMINISTIC
MODIFIES SQL DATA
CALLED ON NULL INPUT
BEGIN
-- Variables receptoras del cursor
DECLARE WUMCEL DECIMAL ( 20 , 0 ) ;
DECLARE WECINI DATE ;
DECLARE WORINI TIME ;
DECLARE WECFIN DATE ;
DECLARE WORFIN TIME ;
DECLARE WURTIM TIME ;
DECLARE WURSEC DECIMAL ( 6 , 0 ) ;
DECLARE WUMDEST DECIMAL ( 20 , 0 ) ;
DECLARE WICLO DECIMAL ( 6 , 0 ) ;
DECLARE WODPLAN CHAR(5) ;
DECLARE WENTRAL CHAR(4) ;
DECLARE WUTENT CHAR(6) ;
DECLARE WUTSAL CHAR(6) ;
DECLARE WELDORI CHAR(10) ;
DECLARE WELDTER CHAR(10) ;
DECLARE WWDNBR DECIMAL ( 20 , 0 ) ;
DECLARE WRDSER DECIMAL ( 10 , 0 ) ;
DECLARE WIPTIC CHAR(3) ;
DECLARE WTSREG CHAR(1) ;
DECLARE WERFAC DECIMAL( 6 , 0) ;
DECLARE WAIS DECIMAL ( 3 , 0 ) ;
DECLARE WREA DECIMAL ( 4 , 0 ) ;
DECLARE WODERR DECIMAL ( 5 , 0 ) ;
DECLARE WLRLLA DECIMAL ( 9 , 2 ) ;
DECLARE WIPLLA CHAR(2) ;
-- Variables de trabajo
DECLARE AT_END INT DEFAULT 0 ;
DECLARE NOT_FOUND CONDITION FOR '02000' ;
-- Cursor de Datos
DECLARE C1 CURSOR FOR
SELECT * FROM SICODAT . DETTRAM
WHERE STSREG = 'P' ;
DECLARE CONTINUE HANDLER FOR NOT_FOUND SET AT_END = 1 ;
OPEN C1 ;
FETCH C1 INTO WUMCEL, WECINI, WORINI, WECFIN, WORFIN, WURTIM, WURSEC,
WUMDEST, WICLO,
WODPLAN, WENTRAL, WUTENT,
WUTSAL, WELDORI, WELDTER, WWDNBR, WRDSER,
WIPTIC, WTSREG, WERFAC, WAIS,
WREA, WODERR, WLRLLA, WIPLLA ;
WHILE AT_END = 0 DO
SET WTSREG = 'F' ;
UPDATE SICODAT.DETTRAM SET STSREG = WTSREG ;
FETCH C1 INTO WUMCEL, WECINI, WORINI, WECFIN, WORFIN, WURTIM, WURSEC,
WUMDEST, WICLO,
WODPLAN, WENTRAL, WUTENT,
WUTSAL, WELDORI, WELDTER, WWDNBR, WRDSER,
WIPTIC, WTSREG, WERFAC, WAIS,
WREA, WODERR, WLRLLA, WIPLLA ;
END WHILE ;
CLOSE C1 ;
END ;
Como podrán apreciar, pues es bastante sencillo, generalmente los cursores
embebidos en rpg si los controlo con el SQLCOD.
Quizá me puedan dar una manita.
Saludos!!
____________________________________________________
Únete a Recursos AS400, nuestra Comunidad ( http://bit.ly/db68dd )
Forum.Help400 © Publicaciones Help400, S.L.