A função dormir no Oracle é na realidade um procedimento que você pode incluir em uma função em vez de si uma função. Confusão muitas vezes ocorre devido a semelhanças surpreendentes entre os dois, com a única diferença real é que um procedimento segue as instruções que nem sempre retornam um valor , enquanto uma função deve sempre termina com um valor de retorno . Adicionando declarações PL /SQL que colocar um banco de dados Oracle " para dormir" é uma tarefa administrativa comum e dependendo da sua preferência , os usuários finais também pode usar uma opção de sono. Identificação
Colocar um banco de dados Oracle para dormir significa exatamente o que diz . As demonstrações que você escreve com que o banco de dados para suspender as operações normais ou parar de funcionar , às vezes por tão pouco quanto alguns centésimos de segundo. Por exemplo, os usuários finais podem adicionar um procedimento de suspensão para pausar o banco de dados antes que insere novas informações em uma tabela. Os administradores de banco de dados pode usar uma função do sono para dizer ao banco de dados que esperar um determinado período de tempo antes de tentar executar novamente uma ação falhou , ou para pausar o banco de dados enquanto ele executa uma rotina de backup .
Processo < br >
a Oracle fornece três opções se você for um administrador e uma opção se você for um usuário final para a codificação e através do procedimento sono em declarações PL /SQL. Os três comandos administrativos são dbms_backup_restore , dbms_drs e DBMS_LOCK eo comando usuário final é user_lock . A opção dbms_backup_restore pára o banco de dados durante os procedimentos de backup e restauração, dbms_drs - ou agendamento de recursos distribuídos - pode suspender a sessão durante a otimização de recursos e os DBMS e user_lock são úteis para fornecer o uso exclusivo de uma máquina ou terminal específico por um tempo limitado , impondo um prazo por um read_lock e para sincronizar aplicações.
sintaxe
Enquanto o comando real para cada difere de acordo com a opção escolhida, o formato geral de sintaxe para escrever um procedimento de sono começa criando o procedimento utilizando a instrução "CREATE PROCEDURE_sleep [( sleepTime pOR INTEIRO ) ] É. " A parte inicial da instrução cria o procedimento e as informações entre colchetes identifica seus parâmetros, que neste caso é o nome do processo , o identificador no que diz a Oracle o procedimento também pode ser utilizado dentro de uma função e inteiro que define o tipo de dados . Inicie o processo com uma declaração simples "BEGIN " e na linha seguinte identificar a opção e seus parâmetros, tais como SYS.DBMS_BACKUP_RESTORE.SLEEP ( sleepTime_in_seconds = 5,01) antes de terminar o procedimento com a instrução END :
CRIAR PROCEDURE_sleep [( sleepTime_in_minutes EM inteiro) ] ISBEGINSYS.DBMS_BACKUP_RESTORE.SLEEP ( sleepTime_in_minutes = 15,01 ); END ;/
Considerações
Quando se trata de conceder privilégios EXECUTE para acabar usuários para o comando user_lock.sleep , entender que não só os usuários finais têm a capacidade de escrever um procedimento sono, mas também todos os procedimentos de bloqueio associados com este comando. Além disso, o tamanho ea configuração do seu banco de dados Oracle pode impedir a concessão de privilégios EXECUTE para todos os usuários finais . Devido a isso, a Oracle recomenda a concessão de privilégios de bloqueio de acordo com a necessidade ou função dentro da empresa.