La funzione Sleep in Oracle

September 28

La funzione Sleep in Oracle


La funzione sleep in Oracle è in realtà una procedura per includere in una funzione piuttosto che una stessa funzione. Confusione spesso si verifica a causa di colpire somiglianze tra i due, con l'unica differenza è che un procedimento consegue istruzioni che non restituiscono sempre un valore, mentre una funzione termina deve sempre con un valore restituito. L'aggiunta di istruzioni PL / SQL che mettono un database Oracle "a dormire" è un compito amministrativo comune e a seconda delle preferenze, gli utenti finali possono anche utilizzare un'opzione di sonno.

Identificazione

Mettere un database Oracle a dormire significa esattamente quello che dice. Le dichiarazioni si scrive causare il database di sospendere le operazioni normali o smettere di lavorare, a volte per non più di un paio di centesimi di secondo. Ad esempio, gli utenti finali possono aggiungere una procedura di sonno per mettere in pausa il database prima che inserisce nuove informazioni in una tabella. Gli amministratori di database possono utilizzare la funzione di sonno a dire il database di attendere un determinato periodo di tempo prima di tentare di eseguire nuovamente un'azione fallito, o per mettere in pausa il database mentre esegue un backup di routine.

Processo

Oracle fornisce tre opzioni se si è un amministratore e una opzione se si è un utente finale per la codifica e utilizzando la procedura di sonno in istruzioni PL / SQL. I tre comandi amministrativi sono dbms_backup_restore, dbms_drs e dbms_lock e il comando utente finale è user_lock. L'opzione dbms_backup_restore arresta il database durante il backup e il ripristino di procedure, dbms_drs - o la pianificazione delle risorse distribuite - può sospendere una sessione durante l'ottimizzazione delle risorse e sia DBMS e user_lock sono utili per fornire uso esclusivo di una macchina o un terminale specifico per un periodo di tempo limitato, l'esecuzione di una limite di tempo per un read_lock e per le applicazioni di sincronizzazione.

Sintassi

Mentre il comando effettivo per ogni differisce a seconda dell'opzione scelta, il formato generale della sintassi per la scrittura di una procedura di sonno inizia con la creazione della procedura utilizzando l'istruzione "CREATE PROCEDURE_sleep [(sleepTime IN INTERO)] è." La parte iniziale della dichiarazione crea la procedura e le informazioni all'interno delle parentesi quadre identifica i propri parametri, che in questo caso è il nome della procedura, l'identificatore che indica iN Oracle il procedimento può essere utilizzato anche all'interno di una funzione e intero che definisce il tipo di dati. Avviare la procedura con una semplice dichiarazione "BEGIN" e la seguente riga individuare l'opzione ed i suoi parametri, come ad esempio SYS.DBMS_BACKUP_RESTORE.SLEEP (sleepTime_in_seconds = 5.01) prima di terminare la procedura con l'istruzione END:

CREATE PROCEDURE_sleep [(sleepTime_in_minutes IN INTERO)]
È
INIZIO
SYS.DBMS_BACKUP_RESTORE.SLEEP (sleepTime_in_minutes = 15.01);
FINE;
/

considerazioni

Quando si tratta di concedere i privilegi EXECUTE agli utenti finali per il comando user_lock.sleep, capiscono che non solo gli utenti finali hanno la possibilità di scrivere una procedura sonno, ma anche tutte le procedure di chiusura associati a questo comando. Inoltre, le dimensioni e la configurazione del database Oracle può impedire di concedere EXECUTE privilegi a tutti gli utenti finali. A causa di questo, Oracle raccomanda la concessione di privilegi di blocco a seconda delle necessità o un ruolo all'interno della società.