estou com um problema.
Criei está procedure agora, a principio ela era para fazer o seguinte:
Verificar se o valor atual do registro é maior que o valor de registro seguinte, se for vai somar os dois valores caso contrario o registro atual ira receber zero.
Mas está aparecendo um erro.
Error(3,1): PLS-00103: Encountered the symbol "(" when expecting one of the following:
begin function package pragma procedure subtype type use
<an identifier> <a double-quoted delimited-identifier> cursor
form current external language
create or replace
PROCEDURE STP_PARC_ABE IS
(
@VLR_PRINC NUMBER (20,2),
@CTR_LIB NUMBER (20)
)
DECLARE
CURSOR C_PRINCIPAL
IS
SELECT CONCAT(CONCAT(NM_CONTRAT,'/'),NM_LIBERAC) CTR_LIB,VLR_PRINC
FROM ZZ_PARCELA_ABERTA
ORDER BY CTR_LIB,NM_PARCELA
FOR UPDATE OF VLR_PRINC;
BEGIN
OPEN C_PRINCIPAL;
LOOP
FETCH C_PRINCIPAL INTO @VLR_PRINC,@CTR_LIB;
EXIT WHEN C_PRINCIPAL%NOTFOUND;
@VLR_PRINC = VLR_PRINCIPAL;
@CTR_LIB = CTR_LIB;
IF (@CTR_LIB = CTR_LIB) THEN
IF (VLR_PRINC > @VLR_PRINC) THEN
@VLR_PRINC := @VLR_PRINC + VLR_PRINC;
ELSE
IF (VLR_PRINC < @VLR_PRINC) THEN
UPDATE ZZ_PARCELA_ABERTA
SET @VLR_PRINC = 0;
END IF;
END IF;
UPDATE ZZ_PARCELA_ABERTA
SET VLR_PRINC = @VLR_PRINC;
END LOOP;
CLOSE C_PRINCIPAL;
DEALLOCATE C_PRINCIPAL;
COMMIT;
END STP_PARC_ABE;
O QUE SERIA ISTO?