Ajuda com Stored Procedure
Estou tentando fazer minha primeira stored procedure, é para verificar se o cliente possui ou não limite disponivel para emprestimo... Caso possua que o limite seja atribuido a conta e deduzido do valor disponível de limite! Se alguém puder ajudar! Segue o código!
CREATE PROCEDURE VERIFICA_LIMITE(
VIDCONTA INTEGER,
VIDCLIENTE INTEGER,
VIDMOVIMENTACAO INTEGER)
AS
declare variable VTIPO_MOV CHAR(1);
declare variable VLIMITE_CONTA numeric(14,2);
declare variable VVALOR_EMPRESTIMO numeric(14,2);
declare variable VSALDO_CONTA numeric(14,2);
declare variable VSALDO_ANTERIOR numeric(14,2);
begin
select saldo,limite from conta where idconta=:vidconta into :vsaldo_anterior,:vlimite_conta;
select valor, tipo from movimentacao where idmovimentacao=:vidmovimentacao into :vvalor_emprestimo,:vtipo_mov;
if (:vtipo_mov = ´E´) then
if (:vsaldo_anterior < 0) and (:vvalor_emprestimo <= :vlimite_conta) and (:vlimite_conta >0) then
update conta set
saldo = (:vsaldo_anterior + :vvalor_emprestimo);
limite = (:vlimite_conta - :vvalor_emprestimo);
where idconta = :vidconta;
if (:vlimite_conta <= 0) then
exception msgerroemprestivo;
suspend;
end
CREATE PROCEDURE VERIFICA_LIMITE(
VIDCONTA INTEGER,
VIDCLIENTE INTEGER,
VIDMOVIMENTACAO INTEGER)
AS
declare variable VTIPO_MOV CHAR(1);
declare variable VLIMITE_CONTA numeric(14,2);
declare variable VVALOR_EMPRESTIMO numeric(14,2);
declare variable VSALDO_CONTA numeric(14,2);
declare variable VSALDO_ANTERIOR numeric(14,2);
begin
select saldo,limite from conta where idconta=:vidconta into :vsaldo_anterior,:vlimite_conta;
select valor, tipo from movimentacao where idmovimentacao=:vidmovimentacao into :vvalor_emprestimo,:vtipo_mov;
if (:vtipo_mov = ´E´) then
if (:vsaldo_anterior < 0) and (:vvalor_emprestimo <= :vlimite_conta) and (:vlimite_conta >0) then
update conta set
saldo = (:vsaldo_anterior + :vvalor_emprestimo);
limite = (:vlimite_conta - :vvalor_emprestimo);
where idconta = :vidconta;
if (:vlimite_conta <= 0) then
exception msgerroemprestivo;
suspend;
end
Slipkorn
Curtidas 0
Respostas
Sremulador
19/05/2006
if (:vtipo_mov = ´E´) then if (:vsaldo_anterior < 0) and (:vvalor_emprestimo <= :vlimite_conta) and (:vlimite_conta >0) then update conta set saldo = (:vsaldo_anterior + :vvalor_emprestimo); limite = (limite - :vvalor_emprestimo); where idconta = :vidconta; if (:vlimite_conta <= 0) then exception msgerroemprestivo; suspend; end
ve se ajuda....
GOSTEI 0