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
✔ Ambos são usados para modularizar o código, facilitar a manutenção e
reutilização do código. PROCEDURES e FUNCTIONS são chamados em
programas PL/SQL, triggers, ou podem ser executados diretamente no
SQL.
✔ PROCEDURES E FUNÇÕES
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;
✔ PROCEDURES E FUNÇÕES
Esse código PL/SQL cria ou substitui uma PROCEDURE chamada P_INSERE. Essa
PROCEDURE realiza a inserção de uma nova linha na tabela solic_compra. Aqui
TÓPICO 1 está uma explicação suscinta:
Observações:
- A expressão OR REPLACE é 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.
✔ SINTAXE PARA A CRIAÇÃO DE UMA FUNCTION
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
PROCEDURES E FUNÇÕES – ou não retornar valores, mas se retornarem, geralmente é através
PL/SQL de parâmetros de saída.
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:
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
TÓPICO 1
PROCEDURES E FUNÇÕES –
PL/SQL
✔ TRIGGERS
TÓPICO 1
PROCEDURES E FUNÇÕES –
PL/SQL
✔ USO RESPONSÁVEL DE TRIGGERS
TÓPICO 1
PROCEDURES E FUNÇÕES –
PL/SQL
✔ APLICAÇÃO 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
• 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.