[firebase-br] Cursor PL SQL
Everton Barbosa
evertonpinduka em gmail.com
Qui Dez 24 10:34:17 -03 2009
Bom Dia Pessoal,
estou precisando de uma ajuda sobre cursor em PL SQL.
Eu tenho uma table com as seguintes columns.
nº contrat, nº lib, nº parcela, juros, valor principal.
Em teoria seria a seguinte maneira os valores, uma parcela de juros
somente e outra de juros + principal.
Mas de uns tempos para cá está trazendo juros + principal em todas as
parcelas... isto está ocorrendo em relação ao problema de software não
de banco.
Eu to tentando desenvolver uma maneira de pegar o proximo registro
sendo que se o valor principal for menor que o valor principal do
registro atual então somar os dois e o proximo registro irá receber
zero. Eu fiz esse cursor aqui mas não estou conseguindo fazer o
tratamento dele, poderiam dar me uma ajuda?
DECLARE @VLR_PRINC NUMBER (20,2)
DECLARE @CTR_LIB NUMBER (20)
DECLARE @PARC NUMBER (4)
DECLARE
C_PRINCIPAL CURSOR
IS
SELECT CONCAT(CONCAT(NM_CONTRAT,'/'),NM_LIBERAC)
CTR_LIB,NM_PARCELA,VLR_PRINC,
PRINCIPAL
FROM ZZ_PARCELA_ABERTA
ORDER BY CTR_LIB,NM_PARCELA
FOR UPDATE OF VLR_PRINCIPAL NOWAIT;
BEGIN
FOR CTR_LIB,NM_PARCELA,VLR_PRINC IN C_PRINCIPAL
LOOP
IF (@CTR_LIB = CTR_LIB) AND (@PARC = NM_PARCELA) THEN
UPDATE ZZ_PARCELA_ABERTA
SET VLR_PRINCIPAL = @VLR_PRINC + VLR_PRINCIPAL
WHERE CURRENT OF C_PRINCIPAL > @VLR_PRINC;
--falta coisas ainda!!!
END LOOP;
COMMIT;
END;
PS: as variaveis vão ser utilizadas na procedure.
Mais detalhes sobre a lista de discussão lista