Die Schlaf-Funktion in Oracle ist in Wirklichkeit ein Verfahren, das Sie in einer Funktion statt einer Funktion selbst enthalten kann. Verwirrung oft tritt wegen auffallende Ähnlichkeiten zwischen den beiden, mit der einzige wirkliche Unterschied ist, dass ein Verfahren, Anweisungen , die nicht immer einen Wert zurückgeben , während eine Funktion endet immer muss mit einem Rückgabewert folgt . Hinzufügen PL /SQL -Anweisungen, die eine Oracle-Datenbank " zu schlafen " gelegt ist eine gemeinsame administrative Aufgabe und je nach Ihren Wünschen , Endanwender können auch ein Schlaf -Option. Identification
Putting eine Oracle-Datenbank zu schlafen bedeutet genau das, was es sagt. Die Aussagen, die Sie schreiben, bewirken, dass die Datenbank in den normalen Betrieb aussetzen oder aufhören zu arbeiten , manchmal für so wenig wie ein paar Hundertstel Sekunden . Zum Beispiel können Endbenutzer einen Schlaf Verfahren zu unterbrechen fügen Sie die Datenbank , bevor es fügt neue Informationen in einer Tabelle. Datenbankadministratoren können eine Sleep-Funktion , um die Datenbank zu sagen, eine bestimmte Menge an Zeit , bevor Sie eine fehlgeschlagene Aktion erneut ausführen , oder unterbrechen Sie die Datenbank warten, während es eine Routine -Backup durchführt.
Prozess < br >
Oracle bietet Ihnen drei Optionen, wenn Sie ein Administrator und eine Option, wenn Sie ein Endbenutzer für die Kodierung und mit dem Schlaf Prozedur in PL /SQL-Anweisungen sind. Die drei administrative Befehle sind dbms_backup_restore , dbms_drs und DBMS_LOCK und der Endbenutzer -Befehl ist user_lock . Die dbms_backup_restore Option beendet die Datenbank während der Sicherung und Wiederherstellung Verfahren dbms_drs - oder Distributed Resource Scheduling - kann eine Sitzung während der Ressourcenoptimierung und beide DBMS und user_lock sind nützlich, um die ausschließliche Verwendung für einen bestimmten Rechner oder Terminal für eine begrenzte Zeit auszusetzen , die Durchsetzung einer Frist für eine read_lock und zum Synchronisieren von Anwendungen .
Syntax
Während der eigentliche Befehl für jede unterscheidet sich je nach Variante Sie sich entscheiden , die allgemeine Syntax Format zum Schreiben eines Schlaf Verfahren beginnt mit der Erstellung des Verfahrens mit der Anweisung " CREATE PROCEDURE_sleep [ ( sleepTime iN INTEGER ) ] IST . " der Anfang Teil der Aussage das Verfahren erstellt und die Informationen innerhalb der eckigen Klammern kennzeichnet seine Parameter , die in diesem Fall wird der Name des Verfahrens , die iN Kennung, die Oracle erzählt das Verfahren kann auch innerhalb einer Funktion und INTEGER , die den Datentyp definiert werden. Starten Sie den Vorgang mit einem einfachen "BEGIN "-Anweisung und in der folgenden Zeile die Option zu identifizieren und deren Parameter , wie SYS.DBMS_BACKUP_RESTORE.SLEEP ( sleepTime_in_seconds = 5,01) vor dem Ende der Prozedur mit der END-Anweisung : CREATE
PROCEDURE_sleep [ ( sleepTime_in_minutes iN INTEGER ) ] ISBEGINSYS.DBMS_BACKUP_RESTORE.SLEEP ( sleepTime_in_minutes = 15.01 ); END ;/
Überlegungen
Wenn es um die Gewährung von EXECUTE-Zugriffsrechte zu Ende Benutzer für die user_lock.sleep Befehl verstehen, dass nicht nur die Endverbraucher haben die Möglichkeit, einen Schlaf Prozedur schreiben , sondern auch alle Sperren Verfahren mit diesem Befehl zugeordnet . Darüber hinaus kann die Größe und Einrichtung Ihres Oracle Datenbank, die Sie aus der Gewährung EXECUTE-Zugriffsrechte für alle Endnutzer zu verhindern. Aus diesem Grund empfiehlt Oracle Gewährung Sperre Privilegien je nach Bedarf oder Rolle innerhalb des Unternehmens.