Exercicio trigger

899 palavras 4 páginas
Universidade do Sul de Santa Catarina – UNISUL
Campus Sul
Disciplina de Banco de Dados Aplicado
Exercícios Aula 15 - Resolvidos
Seja o seguinte modelo de dados nível lógico:

1) Suponha a criação da tabela abaixo: Onde:
DATA data de vencimento
NR_PARCELA_PAGAS nro de parcelas geradas que foram pagas
VL_RECEBIDO valor das parcelas geradas que foram pagas
NR_PARCELA_GERADAS nro de parcelas geradas a partir das compras
VL_A_RECEBER valor a receber das parcelas geradas a partir das compras

Construa uma trigger de base que, ao ser gerada uma nova parcela, contabilize o valor da parcela para a coluna vl_a_receber e acrescente 1 na coluna nr_parcela_geradas na referida data de vencimento da tabela recebimento.
CRIANDO A TABELA: create table recebimento( data date not null, nr_parcela_pagas number(5), vl_recebido number(9,2), nr_parcela_geradas number(5), vl_a_receber number(9,2));

IMPLEMENTANDO A TRIGGER:
CREATE OR REPLACE TRIGGER TRGA17EX1
AFTER INSERT ON PARCELA
FOR EACH ROW
DECLARE
WEXISTEDATA NUMBER(1); WNR_PARCELA_GERADAS NUMBER(5); WVL_A_RECEBER NUMBER(9,2);
BEGIN
WEXISTEDATA := 0; SELECT COUNT(DATA) INTO WEXISTEDATA FROM RECEBIMENTO WHERE TRUNC(DATA) = TRUNC(:NEW.DT_VCTO); IF WEXISTEDATA = 0 THEN INSERT INTO RECEBIMENTO (DATA,NR_PARCELA_GERADAS,VL_A_RECEBER) VALUES (:NEW.DT_VCTO,1,:NEW.VL_PAR); ELSE UPDATE RECEBIMENTO SET NR_PARCELA_GERADAS = NR_PARCELA_GERADAS + 1, VL_A_RECEBER = VL_A_RECEBER + :NEW.VL_PAR WHERE TRUNC(DATA) = TRUNC(:NEW.DT_VCTO); END IF;
END;

2) Altere a trigger gerada no exercício 1 para que, ao ser pago uma parcela, seja contabilizado o valor pago para a coluna vl_recebido e acrescente 1 na coluna nr_parcela_pagas na referida data de vencimento da tabela recebimento.
CREATE OR REPLACE TRIGGER TRGA17EX2
AFTER UPDATE ON PARCELA
FOR EACH ROW
DECLARE
WEXISTEDATA NUMBER(1); WNR_PARCELA_GERADAS NUMBER(5); WVL_A_RECEBER NUMBER(9,2);

Relacionados

  • Trigger SQl Exercicios
    910 palavras | 4 páginas
  • Exercicios Finais BD Procedure e Triggers
    439 palavras | 2 páginas
  • Lista Triggers Abril2015
    789 palavras | 4 páginas
  • Exercicios banco de dados
    980 palavras | 4 páginas
  • Ciencias
    1242 palavras | 5 páginas
  • Pl /sql avançado
    9369 palavras | 38 páginas
  • SQL - Structured Query Language
    2728 palavras | 11 páginas
  • Relatorio Lab 1
    967 palavras | 4 páginas
  • trabalho banco de dados
    688 palavras | 3 páginas
  • Aprendendo com PHP
    789 palavras | 4 páginas