execute block - dynamische Proceduren

September 28, 2010 - Lesezeit: 3 Minuten

Eine SQL-Statement nutzen, das alle Merkmale der Stored Procedure aufweist, ohne das dieses in der Datenbank definiert ist. Das ist mit "EXECUTE BLOCK" möglich:

 

EXECUTE BLOCK [(<inparams>)]
      [RETURNS (<outparams>)] AS [<var-decls>]
 BEGIN
   PSQL statement(s)
 END
 
<inparams>   ::=  paramname type = ? [, <inparams>]
<outparams>  ::=  paramname type [, <outparams>] 
<var-decls>  ::=  <var-decl> [<var-decls>]
<var-decl>   ::=  DECLARE [VARIABLE] varname type [= initvalue]; 
 

Beispiel: Ausgabe von 100 Sätzen mit 2 Feldern

 

execute block 
returns (NR integer,Txt varchar(100))
as
declare variable i integer;
begin
  i=0;
  while (i<100) do begin 
    i=i+1;
    NR=i;
    Txt='Satz: '||i;
    suspend;
  end
end

 

 

Tags: Firebird