Sleep funksjon i Oracle

Sleep funksjon i Oracle


Sovefunksjonen i Oracle er i realiteten en prosedyre du kan inkludere i en funksjon i stedet for en funksjon i seg selv. Forvirring oppstår ofte på grunn av slående likheter mellom de to, med den eneste reelle forskjellen er at en prosedyre følger instruksjonene som ikke alltid gir en verdi, mens en funksjon må alltid avsluttes med en returverdi. Legge til PL / SQL-setninger som setter en Oracle-database "for å sove" er en felles administrativ oppgave og avhengig av dine preferanser, kan sluttbrukere også bruke en søvn alternativ.

Identifikasjon

Putting en Oracle database for å sove betyr akkurat hva det står. Uttalelsene du skriver føre til at databasen til å suspendere normal drift eller slutte å virke, noen ganger for så lite som noen få hundredeler av et sekund. For eksempel kan sluttbrukerne legge en søvn prosedyre for å stanse databasen før den setter inn ny informasjon inn i en tabell. Database administratorer kan bruke en dvalefunksjon for å fortelle databasen til å vente en viss tid før du prøver å kjøre en mislykket aksjon, eller å ta en pause i databasen mens den utfører en rutinemessig backup.

Prosess

Oracle gir deg tre alternativer hvis du er administrator og ett alternativ hvis du er en sluttbruker for koding og bruk av søvn prosedyren i PL / SQL-setninger. De tre administrative kommandoer er dbms_backup_restore, dbms_drs og dbms_lock og sluttbrukeren kommandoen er user_lock. Den dbms_backup_restore alternativet stopper databasen under sikkerhetskopiering og gjenoppretting prosedyrer, dbms_drs - eller distribuert ressursplanlegging - kan suspendere en økt i løpet av ressursoptimalisering og både DBMS og user_lock er nyttige for å gi eksklusiv bruk til en bestemt maskin eller terminal for en begrenset tid, håndheve en fristen for en read_lock og for synkronisering applikasjoner.

syntax

Mens selve kommando for hver forskjellig avhengig av hvilket alternativ du velger, den generelle syntaksen format for å skrive en søvn prosedyren starter ved å opprette prosedyren ved hjelp av setningen "CREATE PROCEDURE_sleep [(sleeptime I INTEGER)] ER." Begynnelsen del av erklæringen skaper prosedyren og informasjonen innenfor hakeparentesene angir dens parametre, som i dette tilfellet er navnet på fremgangsmåten, kan iN identifikator som forteller Oracle fremgangsmåten også brukes innen en funksjon og INTEGER som definerer datatypen. Start prosedyren med en enkel "BEGIN" statement og på følgende linje identifisere alternativet og dets parametre, som SYS.DBMS_BACKUP_RESTORE.SLEEP (sleepTime_in_seconds = 5,01) før du avslutter prosedyren med END uttalelse:

CREATE PROCEDURE_sleep [(sleepTime_in_minutes I INTEGER)]
ER
BEGYNNE
SYS.DBMS_BACKUP_RESTORE.SLEEP (sleepTime_in_minutes = 15.01);
SLUTT;
/

betraktninger

Når det gjelder å gi EXECUTE-rettigheter til sluttbrukere for user_lock.sleep kommando, forstår at ikke bare vil ende brukere har muligheten til å skrive en søvn prosedyre, men også alle låse prosedyrer forbundet med denne kommandoen. I tillegg kan størrelsen og oppsettet på Oracle database hindre deg fra å gi EXECUTE-rettigheter til alle sluttbrukere. På grunn av dette, anbefaler Oracle gi lock privilegier etter behov eller rolle i selskapet.