|
I am trying to create a SQL stored procedure. I need to open 2 cursors for
selects from 2 different tables (I cannot join these tables together to get
the results I want). I have included an example of what I am trying to do
(yes, I know it doesn't do anything but the actual code is about 350 lines).
When I try to run this statement I get the error:
SQL0199 30 21 Position 11 Keyword DECLARE not expected. Valid tokens:
( IF GET SET CALL CASE DROP GOTO LOCK OPEN WITH ALTER
CLOSE.
for the line where the second DECLARE CURSOR statement is.
I have tried declaring both cursors at the beginning of the procedure; but
that has not
worked either. It does work if I take out all the code referencing the
second cursor.
I am using V5R1.
The only documentation I can find for SQL Procedures is in this book:
http://publib.boulder.ibm.com/iseries/v5r1/ic2924/info/sqlp/rbafymst02.htm#T
oC_204
(DB2 UDB for iSeries SQL Programming Concepts V5R1)
but it is not very thorough.
Here is the example:
CREATE PROCEDURE jehimes/Testproc ()
LANGUAGE SQL READS SQL DATA
BEGIN
DECLARE ID INT;
DECLARE ENDTABLE INT DEFAULT 0;
DECLARE BAD INT DEFAULT 0;
DECLARE C1 CURSOR FOR
select c1nmid from lbucmfil/nammsp where c1nmid<999 ;
DECLARE CONTINUE HANDLER FOR NOT FOUND
SET ENDTABLE = 1;
DECLARE EXIT HANDLER FOR SQLEXCEPTION
SET BAD=1;
OPEN C1;
FETCH C1 INTO ID ;
WHILE ENDTABLE = 0 DO
FETCH C1 INTO ID ;
END WHILE;
CLOSE C1;
SET ENDTABLE =0;
SET BAD =0;
DECLARE C2 CURSOR FOR
select c3nmid from lbucmfil/biomsp where c3nmid<999;
DECLARE CONTINUE HANDLER FOR NOT FOUND
SET ENDTABLE = 1;
DECLARE EXIT HANDLER FOR SQLEXCEPTION
SET BAD=1;
OPEN C2;
FETCH C2 INTO ID ;
WHILE ENDTABLE = 0 DO
FETCH C2 INTO ID ;
END WHILE;
CLOSE C2;
SET ENDTABLE =0;
SET BAD =0;
END ;
Any help (manuals; suggestions; examples) would be greatly appreciated.
As an Amazon Associate we earn from qualifying purchases.
This mailing list archive is Copyright 1997-2025 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].
Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.