Escolar Documentos
Profissional Documentos
Cultura Documentos
UNIDADE 3 - PROGRAMANDO
PROCEDURALMENTE EM BD
TÓPICO 1 – PROCEDURES E FUNÇÕES
PROCEDURES E FUNÇÕES
Vamos relembrar...
TÓPICO 1
PROCEDURES E FUNÇÕES –
O que é?
PL/SQL
PROCEDURES E FUNÇÕES
PROCEDURES E FUNÇÕES –
PL/SQL Em PL/SQL (Procedural Language/Structured Query Language),
"PROCEDURES" (procedimentos) e "FUNCTIONS" (funções) são blocos
de código que podem ser definidos para realizar tarefas específicas
em um banco de dados Oracle.
PROCEDURE (Procedimento):
TÓPICO 1 Uma PROCEDURE é um bloco de código PL/SQL que executa uma ou
mais instruções. Pode ter zero ou mais parâmetros de entrada, que são
usados para passar informações para a PROCEDURE.
PROCEDURES E FUNÇÕES –
PL/SQL
Pode ter parâmetros de saída ou de entrada/saída, permitindo que a
PROCEDURE retorne valores ou informações para o chamador. Exemplo
de uma PROCEDURE:
PROCEDURES E FUNÇÕES
FUNCTION (Função):
TÓPICO 1
Uma FUNCTION é semelhante a uma PROCEDURE, mas tem a
PROCEDURES E FUNÇÕES – capacidade adicional de retornar um valor.
PL/SQL Deve sempre retornar um valor e é usado em expressões SQL. Pode ter
parâmetros de entrada, saída ou de entrada/saída. Exemplo de uma
FUNCTION:
TÓPICO 1
PROCEDURES E FUNÇÕES –
PL/SQL
PROCEDURES E FUNÇÕES
TÓPICO 1 EXEMPLO
Create or Replace procedure P_INSERE is
PROCEDURES E FUNÇÕES – Begin
PL/SQL
Insert into solic_compra
(num_solic,dat_emiss,dat_previsao,deptno)
values
(4,sysdate,sysdate + 15,20);
End;
Esse código PL/SQL cria ou substitui uma PROCEDURE chamada P_INSERE. Essa
TÓPICO 1 PROCEDURE realiza a inserção de uma nova linha na tabela solic_compra.
Observações:
- A expressão OR REPLACE (substituição) é opcional.
- A palavra-chave AS é equivalente a IS, podendo ser usada uma ou
outra.
- O bloco PL/SQL deve ser iniciado com BEGIN ou com declaração de
variáveis locais se necessário, sem DECLARE.
TRANSFERÊNCIA DE VALORES E PASSAGEM DE PARÂMETROS
TÓPICO 1
PROCEDURES E FUNÇÕES –
PL/SQL
IN (Entrada):
TÓPICO 1 Este tipo de parâmetro é usado para passar valores para a PROCEDURE.
Os valores passados são tratados como somente leitura dentro da
PROCEDURES E FUNÇÕES – PROCEDURE.
PL/SQL
TRANSFERÊNCIA DE VALORES E PASSAGEM DE PARÂMETROS
OUT (Saída):
TÓPICO 1 Este tipo de parâmetro é usado para retornar valores da PROCEDURE.
Os valores são modificados dentro da PROCEDURE e retornados ao
PROCEDURES E FUNÇÕES – chamador.
PL/SQL
CREATE OR REPLACE PROCEDURE minha_procedure(p_resultado OUT
NUMBER) IS
BEGIN
-- Modifica o valor de p_resultado durante a execução da PROCEDURE
END minha_procedure;
TRANSFERÊNCIA DE VALORES E PASSAGEM DE PARÂMETROS
IN OUT (Entrada/Saída):
TÓPICO 1 Combina as funcionalidades de IN e OUT, permitindo a passagem de
valores para a PROCEDURE e a recepção de valores modificados de
volta.
PROCEDURES E FUNÇÕES –
PL/SQL
TRANSFERÊNCIA DE VALORES E PASSAGEM DE PARÂMETROS
TÓPICO 1
PROCEDURES E FUNÇÕES –
PL/SQL
TRANSFERÊNCIA DE VALORES E PASSAGEM DE PARÂMETROS
1.Parâmetro IN (p_in_parametro):
TÓPICO 1
•Este parâmetro é utilizado para receber um valor do tipo
PROCEDURES E FUNÇÕES – VARCHAR2.
PL/SQL •Dentro do corpo da PROCEDURE, o valor do parâmetro
p_in_parametro é utilizado, mas não pode ser modificado.
2.DBMS_OUTPUT.PUT_LINE:
•Esta linha imprime uma mensagem na saída do console,
mostrando o valor recebido como parâmetro IN.
TÓPICO 1
PROCEDURES E FUNÇÕES –
PL/SQL
SINTAXE PARA A CRIAÇÃO DE UMA FUNCTION
Parâmetro IN (p_in_parametro):
TÓPICO 1 • Este parâmetro é utilizado para receber um valor do tipo
NUMBER.
PROCEDURES E FUNÇÕES – • Dentro do corpo da FUNCTION, o valor do parâmetro
PL/SQL p_in_parametro é utilizado para criar uma string que será
atribuída ao parâmetro OUT.
TÓPICO 1 Este parâmetro é utilizado tanto para receber quanto para retornar
um valor do tipo BOOLEAN.
Dentro do corpo da FUNCTION, o valor do parâmetro
PROCEDURES E FUNÇÕES –
PL/SQL p_in_out_parametro é invertido (NOT). O chamador pode acessar
essa modificação após a execução.
RETURN:
A FUNCTION retorna uma string fixa, "Resultado da função". O tipo
de retorno da FUNCTION é VARCHAR2.
Propósito:
TÓPICO 1 PROCEDURES: são usadas para realizar uma ou mais ações. Podem
ou não retornar valores, mas se retornarem, geralmente é através
PROCEDURES E FUNÇÕES – de parâmetros de saída.
PL/SQL
Funções: são projetadas para retornar um valor específico. Deve
sempre ter um valor de retorno e são frequentemente usadas em
expressões SQL.
Valor de Retorno:
Uso em Atribuições:
TÓPICO 1
Procedures: não podem ser usadas diretamente em atribuições de
variáveis ou em outras expressões.
PROCEDURES E FUNÇÕES –
PL/SQL
Funções: são frequentemente usadas em atribuições de variáveis
ou em expressões, pois retornam um valor.
Tratamento de Exceções:
TÓPICO 1
PROCEDURES E FUNÇÕES –
PL/SQL
MANIPULAÇÃO DE EXCEÇÕES EM TEMPO DE EXECUÇÃO
TÓPICO 1
PROCEDURES E FUNÇÕES –
PL/SQL
MANIPULAÇÃO DE EXCEÇÕES EM TEMPO DE EXECUÇÃO
TÓPICO 1
PROCEDURES E FUNÇÕES –
PL/SQL
Manipulação de Exceções em PROCEDURE ou FUNCTION:
Quando você cria PROCEDURES ou FUNCTIONS, você pode usar blocos
EXCEPTION dentro delas para tratar exceções específicas.
TÓPICO 1
PROCEDURES E FUNÇÕES –
PL/SQL
Manipulação de Exceções – RAISE
A instrução RAISE pode ser usada dentro de um bloco EXCEPTION para
relançar a exceção capturada.
TÓPICO 1 Útil quando você deseja realizar algum processamento adicional antes
de relançar a exceção.
PROCEDURES E FUNÇÕES –
PL/SQL
TRIGGERS
PROCEDURES E FUNÇÕES – AFTER Triggers: São acionados após a execução da ação que causou o
PL/SQL trigger.
Eventos de Disparo:
Os triggers podem ser associados a diferentes eventos, tais como:
INSERT: Disparado após a inserção de uma nova linha em uma tabela.
UPDATE: Disparado após a atualização de uma linha em uma tabela.
DELETE: Disparado após a remoção de uma linha de uma tabela.
LOGIN/LOGOFF: Disparado quando um usuário faz login ou logoff.
TRIGGERS
Estrutura Básica de uma Trigger
TÓPICO 1
PROCEDURES E FUNÇÕES –
PL/SQL
PROCEDURES E FUNÇÕES –
PL/SQL
TRIGGERS
TÓPICO 1
PROCEDURES E FUNÇÕES –
PL/SQL
Observações
TÓPICO 1
PROCEDURES E FUNÇÕES –
PL/SQL
USO RESPONSÁVEL DE TRIGGERS
PROCEDURES E FUNÇÕES –
PL/SQL • Validação de Dados:
• Utilizar triggers para verificar e validar dados antes de serem
inseridos ou atualizados no banco de dados. Isso pode garantir
que apenas dados válidos sejam armazenados.
• Controle de Acesso:
• Implementar restrições de acesso usando triggers para
controlar quem pode modificar ou visualizar certos dados em
uma tabela. Isso pode incluir a verificação de permissões ou
condições específicas.
APLICAÇÃO DE TRIGGERS
• Integridade Referencial:
• Garantir a integridade referencial entre tabelas, forçando
regras específicas quando ocorrem operações de inserção,
atualização ou exclusão.
• Transformação de Dados:
• Realizar transformações nos dados automaticamente antes ou
após certos eventos. Isso pode envolver a conversão de
formatos de dados, normalização de dados, etc.
BENEFÍCIOS DE TRIGGERS DE BASE DE DADOS
PROCEDURES E FUNÇÕES –
PL/SQL Melhorar a segurança dos dados
TÓPICO 1
PROCEDURES E FUNÇÕES –
PL/SQL
https://livesql.oracle.com/apex/f?p=590:1000
BLOCOS ANÔNIMOS
'hello world‘
TÓPICO 1
PROCEDURES E FUNÇÕES –
PL/SQL
BLOCOS ANÔNIMOS
TÓPICO 1
PROCEDURES E FUNÇÕES –
PL/SQL
TÓPICO 1
PROCEDURES E FUNÇÕES –
PL/SQL
PROCEDURES E FUNÇÕES –
PL/SQL
TÓPICO 1
PROCEDURES E FUNÇÕES –
PL/SQL
• CURSOR E PROCEDURE
TÓPICO 1
PROCEDURES E FUNÇÕES –
PL/SQL
• FUNCTIONS
TÓPICO 1
PROCEDURES E FUNÇÕES –
PL/SQL
• TRIGGER
TÓPICO 1
PROCEDURES E FUNÇÕES –
PL/SQL
DESAFIO (0,5)
• Teste da Procedure:
Em um bloco PL/SQL, chame a procedure verificar_disponibilidade para
dois livros fictícios, um disponível e outro já emprestado.