We've been trying to have a stored procedure get results from another
stored procedure but get an error when compiling the calling
procedure:
[IBM][CLI Driver][DB2/LINUX] SQL0104N An unexpected token "ALLOCATE
rsCur CURSOR FOR" was found following "RE targetProcedure; ".
Expected tokens may include: "<psm_labellable_stmt>". LINE
NUMBER=20. SQLSTATE=42601
Here is an example using the SAMPLE database:
CREATE PROCEDURE DB2INST1.targetProcedure ( )
LANGUAGE SQL
------------------------------------------------------------------------
-- SQL Stored Procedure
------------------------------------------------------------------------
P1: BEGIN
DECLARE clientcur CURSOR WITH RETURN TO CALLER
FOR SELECT salary, bonus
FROM employee;
OPEN clientcur;
END P1
CREATE PROCEDURE DB2INST1.callingProcedure ( )
LANGUAGE SQL
------------------------------------------------------------------------
-- SQL Stored Procedure
------------------------------------------------------------------------
P1: BEGIN
DECLARE at_end integer default 0;
DECLARE not_found CONDITION FOR SQLSTATE '02000';
DECLARE var1 decimal;
DECLARE var2 decimal;
DECLARE result1 RESULT_SET_LOCATOR VARYING;
DECLARE CONTINUE HANDLER FOR not_found
SET at_end = 1;
CALL targetProcedure();
ASSOCIATE RESULT SET LOCATORS(result1)
WITH PROCEDURE targetProcedure;
ALLOCATE rsCur CURSOR FOR result1;
END P1
Thanks,
Daniel