Error Sentencia Variable Stored Procedure
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)
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)
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 || '''' ;
Faltaba concatenar el Apostrofe!!!!
SET SENTENCIA = 'SELECT * FROM ' || LIBRERIA || '.TABLA WHERE CAMPO01 ='|| '''' || TRF || '''' || ' AND CAMPO02 =' || '''' || STP || '''' || ' AND CAMPO03 =' || '''' || ITM || '''' ;
