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