A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Primeira aula de PL/SQL Parte II

Apresentações semelhantes


Apresentação em tema: "Primeira aula de PL/SQL Parte II"— Transcrição da apresentação:

1 Primeira aula de PL/SQL Parte II
SEQUENCE, PROCEDURE, FUNÇÃO, TRIGGER

2 Trigger 3) Crie uma TRIGGER que altere de forma automática o valor
da locação aos finais de semana. Aos sábados e Domingos, as locações devem ser acrescidas em 10% . CREATE or replace TRIGGER trg_valor_locacao BEFORE INSERT ON locacao FOR EACH ROW BEGIN If to_char(:new.data_locacao,’d’) in (1,7) then :new.valor:=:new.valor*1.1; End if; END;

3 Testando a Trigger 4) Para testar a trigger “trg_valor_locacao”, insira dados na tabela locacao em diferentes dias da semana para verificar se as locações ocorridas aos sábados e domingos terão seu valor alterado, o que não acontecerá com os outros dias das semana

4 Função 5) Crie uma função para retornar o nome do cliente passando seu código como parâmetro create or replace function NOME_CLIENTE(p_cod_cliente number) return varchar2 is tmp_nome varchar2(20); begin select nome into tmp_nome from cliente where cod_cliente = p_cod_cliente; exception when no_data_found then null; end; return (tmp_nome);

5 Testando a Função 6) Para testar a função “NOME_CLIENTE” use um SELECT da seguinte maneira: Select NOME_CLIENTE(xyz) from dual; (xyz é o código de um cliente que você inseriu. Como código do cliente é um dado do tipo varchar, não se esqueça de colocar o parâmetro entre aspas simples)

6 Procedure 7) Criar uma “procedure” que mantenha o histórico de locacões, deixando na tabela “locacao”, somente os dados do mês corrente. O restante das informações deverá ser armazenado em uma tabela histórico (locacao_historico). 7 a - Primeiramente, vamos criar a tabela “locacao_historico “ que tem o mesmo esquema da tabela “locacao” Create table locacao_historico (num number, cod_cliente varchar2(20),cod_fita varchar2(10),data_locação date, valor number(7,2));

7 Procedure 7 b- Agora, vamos criar a Procedure propriamente dita
create or replace procedure limpa_locacao is begin for pesquisa in (select * from locacao) loop if to_char(pesquisa.data_locacao,'mm')<>to_char(sysdate,'mm') then insert into locacao_historico values (pesquisa.num, pesquisa.cod_cliente,pesquisa.cod_fita, pesquisa.data_locacao,pesquisa.valor); delete from locacao where num = pesquisa.num; end if; end loop; end;

8 Testando a Procedure 8) Executar a Procedure Exec limpa_locacao;


Carregar ppt "Primeira aula de PL/SQL Parte II"

Apresentações semelhantes


Anúncios Google