Você está na página 1de 62

W E L L I N G T O N C O S TA | Banco de Dados Avançado

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 ou funções são blocos PL*SQL armazenados na base de


TÓPICO 1 dados para repetidas execuções. São criadas através do SQL*Plus ou
SQL*DBA.

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.

 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:

CREATE OR REPLACE FUNCTION minha_funcao (p_numero IN


NUMBER) RETURN NUMBER IS
BEGIN
RETURN p_numero * 2;
END minha_funcao;
 PROCEDURES E FUNÇÕES

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;

O que faz essa procedure?


 PROCEDURES E FUNÇÕES

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.

•Nome da PROCEDURE: P_INSERE


PROCEDURES E FUNÇÕES – •Corpo da PROCEDURE:
PL/SQL •Utiliza a instrução INSERT INTO para adicionar uma nova linha à tabela
solic_compra.
•Os valores inseridos são:
•num_solic: 4
•dat_emiss: Data atual do sistema (sysdate)
•dat_previsao: Data atual do sistema acrescida de 15 dias (sysdate +
15)
•deptno: 20

Resumidamente, sempre que essa PROCEDURE é executada, uma nova entrada é


adicionada à tabela solic_compra com valores específicos para os campos
mencionados.
 SINTAXE PARA A CRIAÇÃO DE UMA PROCEDURE

CREATE OR REPLACE PROCEDURE nome da procedure


TÓPICO 1 (argumento1 modo tipo de dado,
argumento2 modo tipo de dado,
PROCEDURES E FUNÇÕES – argumentoN modo tipo de dado)
PL/SQL
IS ou AS
variáveis locais, constantes etc.
BEGIN
bloco PL*SQL
END nome da procedure
Onde:
 SINTAXE PARA A CRIAÇÃO DE UMA PROCEDURE

nome da procedure: é o nome da procedure;


TÓPICO 1 argumento ou Parâmetro: é o nome da variável que será enviada ou
retornada para a procedure;
PROCEDURES E FUNÇÕES – modo: é o tipo do argumento: IN (default) - entrada;
PL/SQL tipo de dado: é o tipo de dado do argumento;
bloco PL*SQL: é o corpo da procedure que define a ação executada por
ela.

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

Em PL/SQL, tanto para PROCEDURES quanto para FUNCTIONS,


você pode usar diferentes tipos de parâmetros para facilitar a
transferência de dados entre as partes do seu código.
 TRANSFERÊNCIA DE VALORES E PASSAGEM DE PARÂMETROS

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.Parâmetro OUT (p_out_parametro):

•Este parâmetro é utilizado para retornar um valor do tipo


NUMBER.
•Dentro do corpo da PROCEDURE, o valor 42 é atribuído ao
parâmetro p_out_parametro. O chamador pode então recuperar
esse valor após a execução da PROCEDURE.
 TRANSFERÊNCIA DE VALORES E PASSAGEM DE PARÂMETROS

1.Parâmetro IN OUT (p_in_out_parametro):


•Este parâmetro é utilizado tanto para receber quanto para
TÓPICO 1 retornar um valor do tipo DATE.
•Dentro do corpo da PROCEDURE, o valor do parâmetro
p_in_out_parametro é modificado para a data atual (SYSDATE). O
PROCEDURES E FUNÇÕES –
PL/SQL chamador pode acessar essa modificação após a execução.

2.DBMS_OUTPUT.PUT_LINE:
•Esta linha imprime uma mensagem na saída do console,
mostrando o valor recebido como parâmetro IN.

Em resumo, a PROCEDURE exemplo_procedure recebe um valor


VARCHAR2 como parâmetro IN, atribui um valor NUMBER ao parâmetro
OUT, e modifica um parâmetro IN OUT para a data atual. Este é um
exemplo básico para ilustrar como os diferentes tipos de parâmetros
podem ser usados em uma PROCEDURE.
 SINTAXE PARA A CRIAÇÃO DE UMA FUNCTION

TÓPICO 1 CREATE OR REPLACE FUNCTION nome da função


(argumento1 modo tipo de dado,
PROCEDURES E FUNÇÕES – argumento2 modo tipo de dado,
PL/SQL argumentoN modo tipo de dado)
RETURN tipo de dado (retorna apenas um parâmetro)
IS ou AS
variáveis locais, constantes etc.
BEGIN
bloco PL/SQL
END nome da função;
Onde:
 SINTAXE PARA A CRIAÇÃO DE UMA FUNCTION

nome da função: é o nome da função


TÓPICO 1 argumento ou Parâmetro: é o nome da variável que será enviada ou
retornada para a função.
modo: é o tipo do argumento ( IN, OUT, IN OUT ).
PROCEDURES E FUNÇÕES –
PL/SQL tipo de dado: é o tipo de dado do argumento.
RETURN: determina tipo de argumento que será retornado pela função
(obrigatório retornar um valor).
bloco PL*SQL: é o corpo da função que define a ação executada por ela.

OBS.: O REPLACE (substituição) deve ser sempre usado quando a


Function já existir e apresentar necessidade de ser alterada.
 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.

Parâmetro OUT (p_out_parametro):

• Este parâmetro é utilizado para retornar um valor do tipo


VARCHAR2.
• Dentro do corpo da FUNCTION, o valor formatado é atribuído ao
parâmetro p_out_parametro. O chamador pode acessar esse
valor após a execução da FUNCTION.
 SINTAXE PARA A CRIAÇÃO DE UMA FUNCTION

Parâmetro IN OUT (p_in_out_parametro):

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.

Em resumo, a FUNCTION exemplo_funcao recebe um valor NUMBER


como parâmetro IN, cria uma string utilizando esse valor para o
parâmetro OUT, inverte um parâmetro IN OUT do tipo BOOLEAN e,
finalmente, retorna uma string fixa. Este é um exemplo básico para
ilustrar como os diferentes tipos de parâmetros podem ser usados em
uma FUNCTION.
 DIFERENÇA ENTRE PROCEDURES E FUNÇÕES

TÓPICO 1 As PROCEDURES e as FUNÇÕES são duas estruturas de programação


importantes em PL/SQL, mas possuem algumas diferenças
fundamentais em termos de propósito e comportamento.
PROCEDURES E FUNÇÕES –
PL/SQL
Procedure: Pode conter uma lista de argumentos, e pode retornar um
ou mais valores.

Função: Pode conter uma lista de argumentos e deve retornar apenas


um valor.
 DIFERENÇA ENTRE PROCEDURES E FUNÇÕES

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:

PROCEDURES: podem ou não ter parâmetros de saída, mas não têm


um valor de retorno explícito.

Funções: sempre têm um valor de retorno explícito. A função deve


usar a cláusula RETURN para retornar um valor específico.
 DIFERENÇA ENTRE PROCEDURES E FUNÇÕES

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: podem incluir tratamento de exceções para lidar com


erros específicos no código.

Funções: também podem incluir tratamento de exceções, mas


como elas devem sempre retornar um valor, o tratamento de
exceções pode ser mais restrito.
 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

A manipulação de exceções em tempo de execução é uma parte


TÓPICO 1 importante da programação em PL/SQL. Isso permite que você lide com
erros e situações excepcionais de maneira controlada.
PROCEDURES E FUNÇÕES –
PL/SQL Bloco EXCEPTION:

• Um bloco EXCEPTION é usado para capturar e manipular exceções em


PL/SQL.
• Pode ser associado a um bloco anônimo, uma PROCEDURE ou uma
FUNCTION.
 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

TÓPICO 1  Conceito de Triggers: é um bloco PL/SQL executado de forma implícita


sempre que ocorre um determinado evento. Pode ser tanto um
gatilho de banco de dados ou um gatilho de aplicação.
PROCEDURES E FUNÇÕES –
PL/SQL
 Esses eventos podem incluir operações como INSERT, UPDATE, DELETE
em uma tabela, ou até mesmo eventos de nível de sistema, como
LOGIN ou LOGOFF. Triggers são usadas para automatizar a execução
de código em resposta a esses eventos.
 TRIGGERS

BEFORE Triggers: São acionados antes da execução da ação que causou


TÓPICO 1 o trigger.

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

BEFORE/AFTER: indica se o trigger deve ser executado antes ou depois do


evento.
Insert/update/delete: especifica o tipo de evento associado ao trigger.
Referencing: permite acessar os valores antigos (old) e novos (new) nas
triggers.
For each row: indica que o trigger deve ser acionado uma vez para cada
linha afetada.
When: permite que você especifique uma condição para acionar o trigger.
 TRIGGERS
EXEMPLO
A cada inclusão na tabela Solic_compra, a Trigger deverá emitir uma mensagem
TÓPICO 1 ao usuário, caso a data de previsão for menor que a data de emissão da
solicitação de compra.

PROCEDURES E FUNÇÕES –
PL/SQL
 TRIGGERS

TÓPICO 1
PROCEDURES E FUNÇÕES –
PL/SQL

Observações

- A declaração <FOR EACH ROW>, e a referência < :NEW > são


utilizados para verificar cada linha de inserção na tabela
referenciada pela trigger, causando ou não alguma exceção.

- O nome do campo após a declaração <:new> refere-se às colunas


da tabela que estão recebendo a operação sobre os dados.
 TRIGGERS

TÓPICO 1
PROCEDURES E FUNÇÕES –
PL/SQL
 USO RESPONSÁVEL DE TRIGGERS

TÓPICO 1 • Eficiência: Triggers podem impactar o desempenho do sistema.

PROCEDURES E FUNÇÕES – • Complexidade: Triggers complexas podem tornar o código difícil de


PL/SQL entender e manter.

• Cascata: Triggers podem acionar outros triggers, criando um efeito


cascata.

É importante projetar e usar triggers com cuidado, considerando as


implicações de desempenho e manutenção.
 APLICAÇÃO DE TRIGGERS

 As triggers são aplicadas em situações específicas para automatizar


TÓPICO 1 a execução de código em resposta a eventos específicos no banco
de dados.

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

TÓPICO 1 • Manutenção de Dados Históricos:


• Implementar triggers para manter automaticamente registros
históricos de alterações em uma tabela, permitindo a análise
PROCEDURES E FUNÇÕES –
de dados ao longo do tempo.
PL/SQL

• 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

Além das vantagens gerais de procedures armazenadas, os triggers


TÓPICO 1 de base de dados possuem mais benefícios, principalmente
complementando a capacidade de atuação do servidor.

PROCEDURES E FUNÇÕES –
PL/SQL Melhorar a segurança dos dados

• Verifica valores baseados na segurança dos checks para


manipulação de dados.
• Verifica valores baseados em auditorias para manipulação de
dados.
• Replicação de tabelas.
• Auditoria de dados pró-ventos em tabelas.
 BENEFÍCIOS DE TRIGGERS DE BASE DE DADOS

• Melhorar a integridade de dados


TÓPICO 1
• Força condições de integridade de dados dinamicamente a nível de
PROCEDURES E FUNÇÕES – base de dados.
PL/SQL
• Força condições de integridade referencial.

• Garante que operações de dados relacionadas sejam executadas


implicitamente.
 Plataforma para execução de código em PL/SQL

TÓPICO 1
PROCEDURES E FUNÇÕES –
PL/SQL

https://livesql.oracle.com/apex/f?p=590:1000
 BLOCOS ANÔNIMOS

• PL/SQL, a extensão processual Oracle do SQL, é uma linguagem de


TÓPICO 1 processamento de transações portátil e de alto desempenho
totalmente integrada ao SQL. A unidade básica de um programa
fonte PL/SQL é o bloco, que agrupa declarações e instruções
PROCEDURES E FUNÇÕES – relacionadas.
PL/SQL • Um bloco PL/SQL é definido pelas palavras-chave DECLARE, BEGIN,
EXCEPTION e END. Essas palavras-chave dividem o bloco em uma
parte declarativa, uma parte executável e uma parte de tratamento
de exceções. Apenas a parte executável é necessária.

'hello world‘

COMO VOCE FARIA EM PL/SQL?


 BLOCOS ANÔNIMOS

TÓPICO 1
PROCEDURES E FUNÇÕES –
PL/SQL
 BLOCOS ANÔNIMOS

• Como um bloco anônimo pode ter suas próprias seções de


TÓPICO 1 declaração e exceção, os desenvolvedores podem usar blocos
anônimos para fornecer escopo para identificadores e tratamento
de exceções dentro de um programa maior.
PROCEDURES E FUNÇÕES –
PL/SQL
• Crie um programa que exiba o dia da semana da data atual
utilizando a função ‘to_char’.

COMO VOCE FARIA EM PL/SQL?


 BLOCOS ANÔNIMOS

TÓPICO 1
PROCEDURES E FUNÇÕES –
PL/SQL

• uso da função to_char para converter valores de data,


números ou outros tipos de dados em formato de
caractere;

• função sqlerrm para mostrar mensagem de erro


associada a exceção mais recente.
• LÓGICA CONDICIONAL

• Vamos adicionar alguma lógica condicional usando a sintaxe if...


TÓPICO 1 then... else. A função TO_CHAR pode ser usada para formatar
datas e numerar tipos de dados. A máscara no formato D é o dia da
semana, um número entre 1 e 7.
PROCEDURES E FUNÇÕES –
PL/SQL
• Crie um programa que verifique o dia da semana atual e imprima
uma mensagem com base nesse dia.

COMO VOCE FARIA EM PL/SQL?


• LÓGICA CONDICIONAL

TÓPICO 1
PROCEDURES E FUNÇÕES –
PL/SQL

• Condicional para verificar se o dia da semana é menor que 4 , a partir


disso mostra uma mensagem
• Caso a resposta seja falsa, apresenta outra mensagem
• Usa a função para converter data em string
• Mostra o dia da semana
• LOOP – FOR

• Crie um programa que utilize uma variável de controle para iterar


TÓPICO 1 em um loop de 1 até 5, imprimindo o valor atual do contador em
cada iteração.

PROCEDURES E FUNÇÕES –
PL/SQL

COMO VOCE FARIA EM PL/SQL?


• LOOP – FOR

TÓPICO 1
PROCEDURES E FUNÇÕES –
PL/SQL
• CURSOR E PROCEDURE

• Crie uma tabela chamada pessoa com duas colunas: id do tipo


TÓPICO 1 NUMBER e nome do tipo VARCHAR2(50). Após a criação da tabela,
é necessário inserir três registros de exemplo. Em seguida, você
deve implementar uma procedure chamada listar_nomes que,
PROCEDURES E FUNÇÕES – quando executada, imprima os nomes presentes na tabela pessoa.
PL/SQL
Escreva o código PL/SQL necessário para realizar as seguintes tarefas:
1. Crie a tabela pessoa com as colunas id e nome.
2. Insira três registros de exemplo na tabela pessoa.
3. Crie a procedure listar_nomes que utiliza um loop FOR para
percorrer os registros da tabela pessoa e imprime os nomes.
4. Execute a procedure listar_nomes para garantir que os nomes
sejam corretamente impressos.

COMO VOCE FARIA EM PL/SQL?


• CURSOR E PROCEDURE

TÓPICO 1
PROCEDURES E FUNÇÕES –
PL/SQL
• FUNCTIONS

TÓPICO 1 • Crie uma função PL/SQL que retorna o dobro de um número


fornecido como argumento.
PROCEDURES E FUNÇÕES –
PL/SQL

COMO VOCE FARIA EM PL/SQL?


• FUNCTIONS

TÓPICO 1
PROCEDURES E FUNÇÕES –
PL/SQL
• TRIGGER

TÓPICO 1 • Crie um código usando trigger que imprime uma mensagem


quando uma nova linha é inserida em uma tabela.
PROCEDURES E FUNÇÕES –
PL/SQL

COMO VOCE FARIA EM PL/SQL?


• TRIGGER

TÓPICO 1
PROCEDURES E FUNÇÕES –
PL/SQL
 DESAFIO (0,5)

Você está trabalhando em um sistema de biblioteca e precisa criar um


TÓPICO 1 procedimento para verificar se um livro está disponível para
empréstimo. A tabela livros possui as colunas id, titulo, autor e status
(indicando se o livro está disponível ou emprestado).
PROCEDURES E FUNÇÕES –
• Procedure:
PL/SQL

Crie uma procedure chamada verificar_disponibilidade que, ao ser


chamada com o ID de um livro, imprime uma mensagem indicando se o
livro está disponível para empréstimo ou não.

• 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.

Forneça o código PL/SQL para ambas as partes da questão.


 DESAFIO (0,5)

Crie uma tabela chamada cliente com duas colunas: codigo_cliente do


TÓPICO 1 tipo NUMBER e nome_cliente do tipo VARCHAR2(60). Após a criação da
tabela, você deve inserir três registros de exemplo. Em seguida,
implemente uma procedure chamada listar_clientes que, quando
PROCEDURES E FUNÇÕES – executada, imprima os nomes dos clientes presentes na tabela.
PL/SQL
Além disso, crie uma segunda tabela chamada fornecedor com as
mesmas colunas da tabela cliente. Insira três registros de exemplo na
tabela fornecedor. Em seguida, implemente uma procedure chamada
listar_fornecedores que imprima os nomes dos fornecedores presentes
na tabela.

Forneça o código PL/SQL para ambas as partes da questão.


“ Obrigado!
Nos vemos na
próxima unidade

Você também pode gostar