Semelhante às funções PL/SQL, um procedimento armazenado é um autocontido subprograma que se destina a realizar algumas tarefas específicas. Também semelhantes às funções, os procedimentos são chamados de blocos PL/SQL, portanto, podem ser reutilizados porque são armazenados no banco de dados como um objeto de banco de dados. Mas diferente das funções PL/SQL, um procedimento armazenado não retorna nenhum valor .
Sintaxe de procedimentos armazenados PL/SQL
CREATE [OR REPLACE] PROCEDURE pro_name (Parameter – List) IS [AUTHID DEFINER | CURRENT_USER] Declare statements BEGIN Executable statements END procedure name; /
A sintaxe do procedimento armazenado PL/SQL acima é bastante semelhante à sintaxe das funções PL/SQL que vimos no último tutorial PL/SQL. Exceto por duas coisas:
- Não há cláusula de devolução.
Uma diferença central entre uma função PL/SQL e um procedimento armazenado é que, diferentemente das funções, um procedimento armazenado não retorna nenhum valor.
- Cláusula AUTHID.
A cláusula AUTHID é usada para configurar o modelo de autoridade para os Procedimentos PL/SQL. Esta cláusula tem dois sinalizadores.
- DEFINER e
- CURRENT_USER
Como esta cláusula é opcional, caso você não use a cláusula AUTHID, o Oracle Engine definirá a autoridade (AUTHID) para o DEFINER por padrão para você. Agora, você deve estar se perguntando quais são esses direitos DEFINER e CURRENT_USER?
DEFINER certo: O direito do definidor é o direito padrão atribuído ao procedimento pelo mecanismo oracle. Esse direito significa que qualquer pessoa com Privilégio de Execução no procedimento age como se fosse o proprietário do esquema no qual o privilégio é criado.
CURRENT_USER à direita: Definir o nível de autoridade de um procedimento armazenado para o direito current_user substitui o direito padrão que é definidor e o altera para os direitos do chamador.
A autoridade de direito do invocador significa que você chama o procedimento para agir em seus dados locais e exige que você replique objetos de dados em qualquer esquema participante.
Alguns pontos extras sobre o procedimento armazenado
- Você pode definir um procedimento com ou sem parâmetros formais.
- Um parâmetro pode ser passar por valor ou passagem por referência .
- Um procedimento será um procedimento de passagem por valor quando você não especificar o modo de parâmetro porque ele usa o modo IN padrão.
É isso em Introdução aos Procedimentos Armazenados PL/SQL. Eu acho que você também vai gostar de ler esses blogs abaixo mencionados. Todos os blogs são escritos tendo em mente a entrevista de emprego e a certificação do banco de dados Oracle, certifique-se de vê-los.
- Diferenças entre a função PL/SQL e os procedimentos armazenados PL/SQL?
- O que são modos de parâmetro em funções e procedimentos PL/SQL?
- O que são parâmetros formais e reais?
Lembre-se sempre:você pode ajudar outras pessoas a aprender e apoiar a mim e ao meu canal, bem como a este blog, compartilhando-o com seus amigos em suas redes sociais.
É isso galera. Obrigado por ler. Cuide-se e tenha um ótimo dia!