38 lines
814 B
SQL
38 lines
814 B
SQL
DECLARE
|
|
V_CODFID VARCHAR2(20) := :CODFID;
|
|
V_NUMSPESE BINARY_INTEGER := 0;
|
|
V_CONTATORE BINARY_INTEGER := 0;
|
|
V_MINVALUE NUMBER := 0;
|
|
V_BONUS NUMBER := 0;
|
|
BEGIN
|
|
|
|
SELECT
|
|
COUNT(*)
|
|
INTO
|
|
V_NUMSPESE
|
|
FROM
|
|
CORSOPLSQL.SCONTRINI
|
|
WHERE
|
|
CODFID = V_CODFID;
|
|
|
|
V_NUMSPESE := V_NUMSPESE - 15;
|
|
|
|
-- Espressione FOR
|
|
IF (V_NUMSPESE > V_MINVALUE) THEN
|
|
-- Ciclo inverso: FOR <CONTATORE> IN REVERSE <RANGE> LOOP
|
|
FOR V_CONTATORE IN V_MINVALUE..V_NUMSPESE LOOP
|
|
V_BONUS := V_BONUS + 100;
|
|
DBMS_OUTPUT.PUT_LINE('Creato Bonus ' || V_CONTATORE);
|
|
|
|
-- In alternativa EXIT WHEN V_BONUS > 500;
|
|
IF V_BONUS > 500 THEN
|
|
DBMS_OUTPUT.PUT_LINE('Bonus Massimo Raggiunto!');
|
|
EXIT;
|
|
END IF;
|
|
|
|
END LOOP;
|
|
END IF;
|
|
|
|
DBMS_OUTPUT.PUT_LINE('Fatto!');
|
|
END;
|