Case und While in einer Stored Procedure nutzen

Februar 21, 2019 - Lesezeit: ~1 Minute
execute block
returns
(txt varchar(10))
as
declare variable i int=1;
begin
  while (i<10) do begin
    txt=case i
       when 1 then 'Eins'
       when 2 then 'Zwei'
       when 3 then 'Drei'
       else '>3'
    end;
    i=i+1;
    suspend;
  end
end
Tags: Firebird

lokale Variable in Firebird mit einem Wert vorbelegen

Februar 21, 2019 - Lesezeit: ~1 Minute
declare variable i HW_INT16=2;
Tags: Firebird

Firebird: Ohrnummer bzw. Herdbuchnummer testen

Februar 23, 2017 - Lesezeit: ~1 Minute

Die Ohrnummer muss 14-stellig mit 2 Buchstaben und 12 Zahlen sein

OHR [not] similar to '[A-Z]{2}[0-9]{12}'

Die Herdbuchnummer ist 8 (mit BIC) oder 6-stellig nur mit Ziffern

HB [not] similar to '([0-9]{6}|[0-9]{8})'
Tags: Firebird SQL

nur Firebird - Client unter Ubuntu installieren

Mai 15, 2013 - Lesezeit: ~1 Minute
sudo apt-get install libfbclient2
Tags: Ubuntu Firebird Kubuntu

Firebird leave - Sprung

Januar 21, 2011 - Lesezeit: ~1 Minute
  1. ohne Sprungmarke -> leave verlässt Schleife
  2. mit Sprungmarke
while (b < 10) do
begin
  if (b=5) then leave;
  b = b + 1;
  if (b=2) then leave ohne2
  suspend;
  ohne2:
end
.. weiter

 

Tags: Firebird

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