Skip to main content

Zahlen und Zahlenfunktionen

Modulo

Die Modulo-Funktion gibt wie üblich bei einer Division den Rest zurück.

SELECT MOD(14, 10); -- 4

Das kann genutzt werden, um in einer Cursor-Schleife alle x Datensätze eine Statusmeldung auszugeben.

Beispiel:

  • es werden Datensätze einzeln in einer Schleife verarbeitet
  • s gibt eine Laufvariable i, die bei 1 beginnt und bis zum letzten Datensatz hochgezählt wird
  • alle 100 Datensätze soll eine Statusmeldung ausgegeben werden
begin

DECLARE i INTEGER DEFAULT 0;

FOR ds AS cur_ds NO SCROLL CURSOR FOR SELECT * FROM grossetabelle
DO

  -- i hochzählen
  SET i = i + 1;

  -- irgendetwas mit dem Datensatz machen

  -- alle 100 Datensätze eine Statusmeldung ausgeben
  IF MOD(i, 100) = 0 THEN
    MESSAGE 'Datensatz Nr. ' || i TO CLIENT;
  END IF;

END FOR;

end