Pular para o conteúdo

Fóruns SQL e PL/SQL Duvidas PL-SQL Duvidas PL-SQL

#99420
Anônimo

    Obrigado pela sua ajuda Ishii ,

    A variavel criei em Declare a seguir a Exception :

    saldoactual NUMBER;

    pode ser assim ou seria algo saldoactual%ROWTYPE ?!

    Já agora deixo aqui as tentativas de resolução do exercicio 2 e 3 .
    Exercicio 2 :
    Criar um procedimento que aceite o código, mês e ano para as facturas de todos os apartamentos do respectivo condomínio no mês e ano em apreço. Data limite de pagamento ficaram será o ultimo dia do mês , data de pagamento ficara nula ate ao acto da entrega.
    CREATE OR REPLACE PROCEDURE EX2

                (Codigo IN NUMBER, Mes IN NUMBER, ANO IN NUMBER)
    

    IS

                CURSOR C_ApartamentosComCondominio (COD NUMBER) IS
    
                               SELECT  COD_Espaco,Cod_proprietario,valor_mensalidade from Apartamentos
    
                               where cod_condomino=COD;        
    

    BEGIN

                OPEN C_ApartamentosComCondominio(Codigo);
    
                FETCH  C_ApartamentosComCondominio INTO CondominoApartamento;
    
                WHILE C_ApartamentosComCondominio%FOUND THEN
    
                               INSERT INTO FACTURA
    
                               VALUES
    
                               (CondominoApartamento.Cod_ESpaco, Mes, Ano, CondominoApartamento.Cod_proprietario, CondominoApartamento. valor_mensalidade, LAST_DAY(TO_DATE(ANO & '/' & MES &'/01','YYYY/MM/DD')),NULL);
    
                               FETCH  C_ApartamentosComCondominio INTO CondominoApartamento;
    
                END LOOP;
    
    
    
                CLOSE C_ApartamentosComCondominio;
    

    END;

    /

    Exercicio 3 :
    Criar função “CALCULAR_DIVIDA” que aceite o código do proprietário e devolva o valor em divida do mesmo.
    Assumi que o significado do pagamento não existir é o campo data_pagamento ser null …..


    CREATE OR REPLACE FUNCTION CALCULAR_DIVIDA (COD in Number)

    RETURN NUMBER

    IS

    BEGIN

                SELECT SUM(VALOR) into Valor
    
                FROM FACTURA
    
                WHERE COD_PRORIATARIO=COD and data_pagamento is null
    
    
    
                RETURN (Valor);
    

    END CALCULAR_DIVIDA;

    /
    [/code]