Cursos / Informática para Internet / Banco de dados / Aula

arrow_back Aula 15 - Linguagem SQL – Stored Procedures

Criando, executando e apagando procedimentos armazenados

A instrução para criar um procedimento armazenado é simples, basta utilizar o comando CREATE PROCEDURE em conjunto com a lista de parâmetros (caso necessário) a serem usados. A sintaxe de criação de um procedimento armazenado é descrita no destaque a seguir.

Nessa expressão, no campo nome_do_procedimento, deve-se inserir o nome que se deseja atribuir para o procedimento, nome esse que deve seguir as mesmas regras usadas para os nomes das tabelas, conforme foi visto na Aula 9. Em seguida, caso haja, deve-se inserir a lista de parâmetros de entrada e/ou saída. Mesmo não havendo parâmetros, devem ser inseridos os parênteses. Finalmente, entre as palavras BEGIN e END, devem ser descritos os comandos SQL que definem a operação a ser executada.

A lista de parâmetros segue a notação [IN | OUT] nome_do_parâmetro tipo_do_dado, ou seja, deve-se usar a palavra-chave que identifica se o parâmetro é de entrada (IN) ou saída (OUT). Se nada for informado, será entendido que o parâmetro é de entrada, o nome do parâmetro e o tipo que ele representa, conforme visto na Aula 9.

Vamos exercitar a criação de Stored procedures no banco de dados sistvendas para entendermos melhor o seu conceito? Na aula anterior sobre visões, um dos exemplos que foram trabalhados foi a consulta aos nomes de todos os produtos que foram vendidos. Visto que esse tipo de pesquisa tende a ser realizada diariamente num banco de dados de um sistema de vendas para gerenciamento de estoque, seria útil definir um procedimento armazenado para executar essa operação. O comando para criar essa Stored procedure é descrito no quadro a seguir.

Observe que foi criado um procedimento armazenado denominado de produtos_vendidos, não sendo definido qualquer parâmetro, e os comandos que definem sua operação encontram-se entre as palavras-chave BEGIN e END. A execução do procedimento armazenado é feita usando o comando apresentado no quadro a seguir.

Para analisarmos a aplicação dos procedimentos armazenados no banco de dados sistvendas, apresentam-se, na Figura 1, os dados presentes nas tabelas do banco de dados.

Tela do MySQL após os comandos SELECT * FROM <span class='strong'>produtos</span>, SELECT * FROM <span class='strong'>clientes</span> e SELECT * FROM <span class='strong'>compras</span>.

A resposta do sistema SGBD para os comandos anteriores é ilustrada na Figura 2. É interessante notar o uso do operador DELIMITER antes da criação do procedimento. Ele é usado para redefinir o caractere delimitador de comandos como “|”, isso é feito para que possamos usar o caractere “;” no meio do procedimento. Caso não efetuemos essa troca, o procedimento será enviado pela metade e uma mensagem de erro será enviada ao terminal, por problemas na sintaxe.

Tela do MySQL após os comandos CREATE PROCEDURE e CALL.

Versão 5.3 - Todos os Direitos reservados