Error Sentencia Variable Stored Procedure

aily
31 de Octubre del 2002
Hola!!! :o)

Tengo un problema espero y alguien me pueda ayudar!!!!

Estoy haciendo un Stored Procedure a traves de un scripts de Sql del navegador de Operaciones del AS/400...

necesito reailizar un select variante pero cuando se ejecuta tiene errores pues no entra la variable como debe ser al momento de concatenar ...

CREATE PROCEDURE PCAESPFACT.BLSCRTF017 (
IN LIBRERIA VARCHAR(10) ,
IN ITM VARCHAR(5) ,
IN TRF VARCHAR(3) ,
IN STP VARCHAR(2))
DYNAMIC RESULT SETS 1
LANGUAGE SQL
SPECIFIC PCAESPFACT.BLSCRTF017
NOT DETERMINISTIC
MODIFIES SQL DATA
CALLED ON NULL INPUT

BEGIN

DECLARE SENTENCIA VARCHAR ( 1000 ) ;
DECLARE CUR INSENSITIVE CURSOR FOR STMT;

SET SENTENCIA = 'SELECT * FROM ' || LIBRERIA || '.TABLA WHERE CAMPO01 =' || TRF || ' AND CAMPO02 =' || STP || ' AND CAMPO03 =' || ITM ;
PREPARE STMT FROM SENTENCIA;
OPEN CUR ;

END;

en donde CAMPO01, CAMPO02 Y CAMPO03 son de tipo caracter, como mencione anteriormete al momento de ejecutar el stored procedure marca error pues no esta tomando los valores de tipo caracter :( !!!!

SELECT * FROM LIB.TABLA WHERE CAMPO01 = A AND CAMPO02 = B AND CAMPO03 = C

ASI ES COMO LA ESTA FORMANDO PERO DEBERIA SER

SELECT * FROM LIB.TABLA WHERE CAMPO01 = 'A' AND CAMPO02 = 'B' AND CAMPO03 = 'C'

NO HE PODIDO CONCATENAR EL APOSTROFE :(

ESPERO Y ME PUEDAN AYUDAR!!!

MUCHAS GRACIAS

SALUDOS!!!

AILY :o)

aily77
31 de Octubre del 2002
Por si ha alguien le sirve ya tengo la respuesta!!! :o)

Faltaba concatenar el Apostrofe!!!!

SET SENTENCIA = 'SELECT * FROM ' || LIBRERIA || '.TABLA WHERE CAMPO01 ='|| '''' || TRF || '''' || ' AND CAMPO02 =' || '''' || STP || '''' || ' AND CAMPO03 =' || '''' || ITM || '''' ;