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

Firebird: Trigger für mehrere Ereignisse

September 15, 2010 - Lesezeit: ~1 Minute

ab Firebird 1.5 kann man einen Trigger erstellen, der für mehrere Ereignisse zuständig ist.

 


Beispiel:

 

 create trigger trigger_adressen for adressen  before insert or update or delete as
 begin
   ...
 end

 

 

 Um zu erkennen, in welche Aktion der Tabelle aufgerufen wurde, gibt es die neuen Variablen

 

INSERTING, UPDATING und DELETING 

 

Beispiel:

 

 create trigger trigger_adressen for adressen  before insert or update or delete as
 begin
   if (deleting) then proc(old.ID); else proc(new.ID);
 end

 

 

Tags: Firebird SQL

Testen, ob der String eine Integer-Zahl darstellt

Juni 16, 2010 - Lesezeit: ~1 Minute

Diese Prozedur gibt 1 zurück falls s eine Zahl ist ansonsten eine 0.


CREATE PROCEDURE ISZAHL (S VARCHAR (100))
RETURNS (ISZAHL SMALLINT)
AS 
declare variable l integer;
declare variable i integer;
declare variable c char(1);
BEGIN
  l=char_length(s);
  if (s is null or l=0) then
    ISZAHL=0;
  else begin
    i=1;
    ISZAHL=1;
    while (i<=l and ISZAHL=1) do begin
      c=substring(S from i for 1);
      if (c between '0' and '9' or (i=1 and c in ('+','-'))) then
        i=i+1;
      else
        ISZAHL=0;
    end
  end
  SUSPEND;
END
Tags: Firebird SQL

null

März 4, 2010 - Lesezeit: ~1 Minute

coalesce - einen Wert ungleich NULL zurückbekommen

select coalesce(Name1,Name2,Name3,'Ich') as IMMERNAME from KUNDEN

 

nullif - null zurückgeben, falls Parameter 1 = Parameter 2  oder  Parameter 1 ist null

select nullif(Name1,ZName1) as NAME from KUNDEN 

 

Tags: Firebird SQL