Mit der Funktion SLEEP wird die Ausführung einer Nachrichtenflussinstanz um einen definierten Zeitraum verzögert. Über einen zurückgegebenen booleschen Wert wird dabei angegeben, ob die Ruhephase ohne Unterbrechung beendet wurde.
Die Funktion SLEEP gibt TRUE (wahr) zurück, falls die Ruhephase über den angegebenen Zeitraum ohne Unterbrechung beendet wurde, und FALSE (falsch), falls nicht.
Mit dem Parameter Zeitdauerausdruck wird die Anzahl der Millisekunden im inaktiven Zustand angegeben. Hierbei muss es sich um den Datentyp INTEGER handeln. Lautet der Wert für Zeitdauerausdruck NULL, gibt die Funktion sofort NULL zurück, ohne in den Ruhemodus zu gelangen.
Die Funktion SLEEP kann nicht aus einem ATOMIC-Block heraus aufgerufen werden, da dadurch andere Instanzen am Zugriff auf die gemeinsam genutzte Ressource gehindert werden würden. Im Falle eines solchen Aufrufs wird unmittelbar FALSE zurückgegeben.
Falls während der Ruhephase des Nachrichtenflusses eine Nachricht bezüglich der Konfiguration oder erneuten Implementierung des Flusses ankommt, wird die Funktion SLEEP automatisch unterbrochen und es wird FALSE zurückgegeben.
DECLARE returnValue BOOLEAN;
SET returnValue = SLEEP(1000); /* attempt to sleep for one second */