Sleep funktion i Oracle er i virkeligheden en procedure, du kan medtage i en funktion snarere end en funktion i sig selv . Forvirring opstår ofte på grund af slående ligheder mellem de to, med den eneste reelle forskel er, at en procedure følger instruktioner, der ikke altid returnere en værdi , mens en funktion altid skal afsluttes med en returværdi . Tilføjelse PL /SQL erklæringer, som sætter en Oracle-database "for at sove " er en fælles administrativ opgave, og afhængigt af dine præferencer , kan slutbrugerne også bruge en sove mulighed. Identifikation
Sætte en Oracle-database til at sove betyder netop , hvad det siger . De udsagn , du skriver få databasen til at suspendere den normale drift eller stoppe med at arbejde , til tider for så lidt som et par hundrededele af et sekund. For eksempel kan slutbrugere tilføje en sove procedure for at holde pause i databasen , før den indsætter nye oplysninger ind i en tabel . Database administratorer kan bruge en dvalefunktion til at fortælle databasen til at vente et bestemt stykke tid, før du forsøger at køre en mislykket handling, eller at holde pause i databasen , mens den udfører en rutinemæssig backup.
Proces < br >
Oracle giver dig tre muligheder, hvis du er administrator og en mulighed, hvis du er en slutbruger til kodning og brug af sleep procedure i PL /SQL udsagn. De tre administrative kommandoer er dbms_backup_restore , dbms_drs og dbms_lock og slutbrugeren kommando er user_lock . Den dbms_backup_restore option stopper databasen under backup og gendannelse procedurer, dbms_drs - eller distribueret ressource planlægning - kan suspendere en session under ressourceoptimering og både DBMS og user_lock er nyttige for at give eksklusiv brug til en bestemt maskine eller terminal i en begrænset periode , håndhæve en frist for en read_lock og til synkronisering af applikationer.
Syntax
selve kommandoen for hver forskellig alt efter den indstilling, du vælger, den generelle syntaks format for at skrive en søvn procedure begynder ved at skabe den procedure ved hjælp af udsagnet " CREATE PROCEDURE_sleep [( sleeptime IN INTEGER ) ] ER." begyndelsen del af oversigten skaber proceduren og oplysninger inden for firkantede parenteser identificerer sine parametre , som i dette tilfælde er navnet på den procedure , IN identifier der fortæller Oracle proceduren kan også bruges i en funktion og INTEGER som definerer datatype. Start proceduren med en simpel " BEGIN " erklæring og på den følgende linje identificerer indstillingen og dens parametre , såsom SYS.DBMS_BACKUP_RESTORE.SLEEP ( sleepTime_in_seconds = 5.01 ) før slutter proceduren med END erklæring : Hej
CREATE PROCEDURE_sleep [( sleepTime_in_minutes IN INTEGER ) ] ISBEGINSYS.DBMS_BACKUP_RESTORE.SLEEP ( sleepTime_in_minutes = 15.01 ), END ;/
Overvejelser
Når det kommer til at give EXECUTE-rettigheder til at afslutte brugere til user_lock.sleep kommando , forstå, at ikke alene vil ende brugere har mulighed for at skrive en søvn procedure, men også alle låse procedurer i forbindelse med denne kommando. Desuden kan størrelsen og opsætning af din Oracle database forhindre dig i at give EXECUTE-rettigheder til alle slutbrugere. På grund af dette , anbefaler Oracle yde lås privilegier efter behov eller rolle i virksomheden .