Hello!
Excuse me for my English!
I create a stored procedure on a DB2 database.
Code:
CREATE PROCEDURE SCHEMAPROVA."prova"
(OUT SQLCODE_OUT INTEGER,
OUT SQLSTATE_OUT CHARACTER(5))
SPECIFIC SCHEMAPROVA."prova"
READS SQL DATA
NOT DETERMINISTIC
CALLED ON NULL INPUT
LANGUAGE SQL
P1: BEGIN
DECLARE SQLSTATE CHAR(5) DEFAULT '00000';
DECLARE SQLCODE INT DEFAULT 0;
DECLARE CAMPO1(16);
DECLARE CAMPO2(40);
DECLARE cursor1 CURSOR WITH RETURN FOR
SELECT
SCHEMAPROVA.TABELLACAMPO2,
SCHEMAPROVA. TABELLA.CAMPO2,
FROM SCHEMAPROVA.TABELLA
DECLARE EXIT HANDLER FOR SQLEXCEPTION
SELECT SQLSTATE, SQLCODE INTO SQLSTATE_OUT, SQLCODE_OUT
FROM SYSIBM.SYSDUMMY1;
OPEN cursor1;
FETCH cursor1 INTO CAMPO1, CAMPO2;
CLOSE cursor1;
SET SQLCODE_OUT = SQLCODE;
SET SQLSTATE_OUT = SQLSTATE;
END P1;
but if I execute CALL SCHEMAPROVA."prova" ()
I get
Code:
An exception occurred
Message: [IBM][CLI Driver][DB2/NT] SQL0444N La routine "EQNRS.prova" (nome specifico "SQL091022182100200") è stata implementata con codice nella libreria o percorso "\EQNRS.prova", funzione "EQNRS.prova" ai quali non è possibile accedere. Codice di errore: "4". SQLSTATE=42724
SQL: CALL EQNRS."prova"()
Method: TDB2DirQuery.Execute
If I wrote a procedure with IN parameters or without parameters, it's works.
With OUT parameters doesn't work!!!
Please, can you help me?
Thanks