Hola Juan Antonio:

En un principio te faltarían los dos puntos previos a la variable de 
sustitución (plinea) pero pienso que en SQL dinámico las variables de 
sustitución no funcionan.
 
He tenido el mismo problema (SQLCOD = -00000501) en varias ocasiones y llegué a 
la conclusión de que al crear la sentencia SQL de forma dinámica, no funciona 
las sustituciones de variables como:
        where mnpolf.eline= :plinea

Cosa que funciona correctamente cuando se declara la SQL estática como 
     C/EXEC SQL
     C+  DECLARE cur CURSOR FOR
     C+      SELECT .....
     C+       FROM .....
     C+       WHERE mnpolf.eline= :plinea
     C/END-EXEC  
 
Al final opte por crear la Sentencia SQL sin variables de sustitución.

La solución que deberías probar en tu caso es algo similar a
     C                  Eval      SelectTwo = %TRIMR(SelectOne)    
     C                                 + %Char(plinea)

Con lo que la SQL se crea con el valor real y no es necesario variables de 
sustitución. 

No olvides la sentencia prepare y cerrar y abrir el cursor
     C/EXEC SQL
     C+  PREPARE P1 FROM :SelectTwo
     C/END-EXEC
 
Saludos:

Enrique Cuetos Rivera
Celulosas de Asturias,S.A.
ENCE-NAVIA         

__________________________________________________
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