July 30, 2010, Friday, 210


ALLOCATE CURSOR

From SQL PL Guide for DB2

Jump to: navigation, search

ALLOCATE CURSOR statement

The ALLOCATE CURSOR statement must be used if an stored procedure returns a result set of a cursor in a called stored procedure. With the statement you're allocating the cursor which where identified by the ASSOCIATE LOCATOR statement.

Syntax:

ALLOCATE <cursor-name> CURSOR FOR RESULT SET <locator-variable>;


Example:

create procedure responder ()
language sql
result sets 1
begin
  declare mycur cursor with return to caller for
     select firstnme, lastname from employee order by lastname, firstnme;
  open mycur;
end!


create procedure caller (out firstname varchar(20), out lastname varchar(20))
language sql
begin
  declare loc result_set_locator varying;

  call responder();
  associate result set locator(loc) with procedure responder;
  allocate cur cursor for result set loc;
  open cur;
  fetch from cur into firstname, lastname;
  close cur;
end!

Another example can be found here.


Link to the DB2 Information Center: DB2 9 DB2 9.5