Here is a little dynamic SQL example to get you going:
CREATE PROCEDURE PROCNAME
  (IN SQL_STATEMENT CHAR (2000),
   IN NFROM INT,
   IN NTO   INT)
RESULT SETS 1
LANGUAGE SQL
BEGIN
  DECLARE MyCursor CURSOR FOR MyPreparedStmt;
  PREPARE MyPreparedStmt FROM SQL_STATEMENT;
  OPEN MyCursor;
END;
/* to test it, invoke it with an sql statement like this */
CALL PROCNAME('SELECT * FROM SYSIBM/SYSDUMMY1',0,0);
You'll notice that I ignored the NFROM and NTO input arguments.  That's
because I'm confused with what you mean by row #.  Do you mean relative
record number (RRN)?
Your reference to DYNAMIC SCROLL CURSOR implies you'd like to fetch a
relative record number from a scrolling cursor, but that doesn't make sense
in the context of a stored procedure that returns a result set.  I mean,
either you fetch to a host variable or return a result set.  Which is it?
Or do you have a primary key column in the table and want to use the NFROM
and NTO arguments in a BETWEEN clause?
FYI, there are some nice examples in the IBM redbook "Stored Procedures,
Triggers, and User-Defined Functions on DB2 Universal Database for iSeries"
which you can download at this link:
http://www.redbooks.ibm.com/abstracts/sg246503.html?Open
Hth, Elvis
Celebrating 11-Years of SQL Performance Excellence on IBM i, i5/OS and
OS/400
www.centerfieldtechnology.com
-----Original Message-----
Subject: SQL Stored Procedure
I am trying to create a stored procedure that accepts an SQL statement,
a FROM row #, & a TO row number.
If I could ask your help with the syntax on where to put the row logic
(or just the syntax in general) I would appreciate it.
CREATE PROCEDURE LIBRARY/PROCNAME                                      
           (IN SQL_STATEMENT CHAR (2000),                               
            IN NFROM INT,                                              
            IN NTO   INT)                                              
            RESULT SETS 1                                               
            LANGUAGE SQL                                                
             BEGIN                                                      
                   DECLARE C1 DYNAMIC SCROLL CURSOR                     
                           WITH RETURN TO CALLER                        
                                  FOR SQL_STATEMENT;                    
                         OPEN C1;                                       
                           FETCH FROM C1;                               
                         CLOSE C1;                                      
            END                                                         
Thanks.
James Salter
As an Amazon Associate we earn from qualifying purchases.