De slaapfunctie in Oracle is in werkelijkheid een procedure die u kunt opnemen in een functie in plaats van een functie zelf . Verwarring komt vaak vanwege opvallende overeenkomsten tussen de twee, met de enige echte verschil is dat een procedure volgt instructies die niet altijd een waarde terug , terwijl een functie moet altijd eindigt met een return waarde . Het toevoegen van PL /SQL- statements die een Oracle -database " slapen " zetten is een veel voorkomende administratieve taak en afhankelijk van uw voorkeur , kunnen eindgebruikers ook een slaap -optie te gebruiken . Identificatie Putting een Oracle-database te slapen betekent precies wat het zegt . De verklaringen schrijf je ervoor zorgen dat de database normale werkzaamheden opschorten of stoppen met werken , soms voor slechts een paar honderdsten van een seconde . Zo kunnen eindgebruikers een slaap procedure de database toe te voegen om te pauzeren voordat wordt er nieuwe informatie in een tabel . Database administrators kunnen een slaap -functie gebruiken om de database te vertellen om een bepaalde hoeveelheid tijd wachten voordat u probeert een mislukte actie herhaling , of om te pauzeren de database terwijl hij presteert een routine back-up . Proces < br > Oracle biedt u drie opties als u beheerder bent en een optie als u een eindgebruiker voor het coderen en het gebruik van de slaap procedure in PL /SQL- statements . De drie bestuurlijke opdrachten zijn dbms_backup_restore , dbms_drs en dbms_lock en de eindgebruiker opdracht is user_lock . De optie dbms_backup_restore stopt de database tijdens backup en restore procedures , dbms_drs - of gedistribueerde resource planning - kan een sessie opschorten tijdens resource optimalisatie en zowel DBMS en user_lock zijn nuttig voor het verstrekken van exclusieve gebruik van een specifieke machine of terminal voor een beperkte tijd , handhaving van een termijn voor een read_lock en voor het synchroniseren van applicaties . syntax Terwijl de eigenlijke opdracht voor ieder verschilt afhankelijk van de optie die u kiest , de algemene syntax formaat voor het schrijven van een slaap procedure begint met het creëren van de procedure met de verklaring " CREATE PROCEDURE_sleep [ ( sleeptime iN INTEGER ) ] IS . " het eerste deel van de instructie maakt de procedure en de informatie binnen de vierkante haakjes identificeert zijn parameters , die in dit geval wordt de naam van de procedure , de IN- id die Oracle de procedure vertelt kan ook gebruikt worden binnen een functie en INTEGER die het gegevenstype definieert . Begint de procedure met een simpele "BEGIN " verklaring en op de volgende regel identificeren van de optie en de parameters , zoals SYS.DBMS_BACKUP_RESTORE.SLEEP ( sleepTime_in_seconds = 5,01 ) voor het beëindigen van de procedure met de END statement : CREATE PROCEDURE_sleep [ ( sleepTime_in_minutes IN INTEGER ) ] ISBEGINSYS.DBMS_BACKUP_RESTORE.SLEEP ( sleepTime_in_minutes = 15.01 ) ; END ;/ overwegingen Als het gaat om het verlenen van EXECUTE privileges te eindigen gebruikers voor de user_lock.sleep commando , begrijpen dat niet alleen zal eindigen gebruikers hebben de mogelijkheid om een slaap procedure te schrijven , maar ook alle vergrendeling procedures in verband met deze opdracht . Bovendien kan de omvang en de setup van uw Oracle -database te voorkomen dat u verlenen UITVOEREN privileges voor alle eindgebruikers . Vanwege dit , Oracle raadt verlenen slot privileges naar gelang de behoefte of rol binnen het bedrijf .
|