ok, this is the complete error:
[IBM][CLI Driver][DB2/NT] SQL0104N Se ha encontrado una señal imprevista "ESCHEMA1" a continuación de "PR.ID FROM". Entre las señales esperadas se puede incluir: "WHERE". SQLSTATE=42601
(this error is not same all times, changes the wrong signal or changes the hope signal)
the stored procedure is a stored that i call "dinamic" stored procedure, because i will give to the SP a few parameter, and if the parameter is not null, it creates & prepare the SENTENCE generating the "WHERE" clauses with the not null values.
here is:
--------------------------------------------------------------------------
CREATE PROCEDURE ESQUEMA1.ADMINISTRADORES_SELECTALL ( IN IDA INTEGER,
IN NOMBREUSUARIOA VARCHAR(500),
IN CONTRASENIAA VARCHAR(500))
------
-- SQL Procedimiento almacenado
------
P1: BEGIN ATOMIC
DECLARE SENTENCIA VARCHAR(1000);
DECLARE CONDICION VARCHAR(1000);
DECLARE CURSOR1 CURSOR WITH RETURN FOR SENTENCIA;
SET SENTENCIA = ' SELECT ID, ' ||
' NOMBREUSUARIO, ' ||
' CONTRASENIA, ' ||
' CREAR, ' ||
' MODIFICAR, ' ||
' BORRAR ' ||
' FROM ESQUEMA1.ADMINISTRADORES ';
IF(IDA IS NOT NULL)THEN
SET CONDICION = ' WHERE ID = ' || CHAR(IDA);
END IF;
IF(NOMBREUSUARIOA IS NOT NULL AND NOMBREUSUARIOA <> '')THEN
IF(CONDICION IS NOT NULL)THEN
SET CONDICION = CONDICION || ' AND UPPER(NOMBREUSUARIO) LIKE ''' || UPPER(NOMBREUSUARIOA) || '''';
ELSE SET CONDICION = ' WHERE UPPER(NOMBREUSUARIO) LIKE ''' || UPPER(NOMBREUSUARIOA) || '''';
END IF;
END IF;
IF(CONTRASENIAA IS NOT NULL AND CONTRASENIAA <> '')THEN
IF(CONDICION IS NOT NULL)THEN
SET CONDICION = CONDICION || ' AND UPPER(CONTRASENIA) LIKE ''' || UPPER(CONTRASENIAA) || '''';
ELSE SET CONDICION = ' WHERE UPPER(CONTRASENIA) LIKE ''' || UPPER(CONTRASENIAA) || '''';
END IF;
END IF;
SET SENTENCIA = SENTENCIA || CONDICION;
PREPARE SENTENCIA FROM SENTENCIA;
OPEN CURSOR1;
END P1 --------------------------------------------------------------------------
other SPs that causes the same error is:
--------------------------------------------------------------------------
CREATE PROCEDURE ESQUEMA1.BIBLIOGRAFIAS_SELECT ( IN IDB INTEGER )
DYNAMIC RESULT SETS 1
------------------------------------------------------------------------
-- SQL Procedimiento almacenado
-- ID
------------------------------------------------------------------------
P1: BEGIN ATOMIC
-- Declarar cursor
DECLARE cursor1 CURSOR WITH RETURN FOR
SELECT ID, TITULO, AUTOR, EDITORIAL, IDMATERIA, ARCHIVO, EXTENSION
FROM ESQUEMA1.BIBLIOGRAFIAS AS BIBLIOGRAFIAS
WHERE ID = IDB;
-- Cursor dejado abierto para aplicación cliente
OPEN cursor1;
END P1
--------------------------------------------------------------------------
I really dont know if the first stored procedure causes the error, and then the other SP leave working because that error...
sorry for my english, thanks for your time.
i am open for suggestion