FOR EXECUTE STATEMENT ... DO

Syntax

 FOR EXECUTE STATEMENT <select-statement> INTO <var> [, <var> ...]
 DO <compound-statement>

 <select-statement> ::  = Any SELECT statement.
 <var>              ::  = A PSQL variable, optionally preceded by “:”

Example

 create procedure DynamicSampleThree
   ( TextField varchar(100),
     TableName varchar(100) )
 returns
   ( LongLine varchar(32000) )
 as
 declare variable Chunk varchar(100);
 begin 
   Chunk = '';
   for execute statement
     'select ' || TextField || ' from ' || TableName into :Chunk
   do
     if (Chunk is not null) then
       LongLine = LongLine || Chunk || ' ';
   suspend;
 end

(Source: Firebird 2.1 Language Reference Update, 10 July 2009)

It should be noted that the Firebird 2.0 and IBEBlock statements, FOR EXECUTE STATEMENT ... DO, are almost but not totally identical: in the case of IBEBlock it is possible to select into the only variable:

 for execute statement 'select field1, field2, field3 ...'
    into :myvar
 do
 ...

In this case it is possible to access selected field values using indices:

 myvar[0]
 myvar[1]
 myvar[2]

or

 myvar['FIELD1']
 myvar['FIELD2']
 myvar['FIELD3']

back to top of page
<< EXECUTE STATEMENT ... AS DATASET | IBEBlock | TRY ... FINALLY >>