Files
corso-plsql/cursori/CURSORI_2.sql
Fabio Scotto di Santolo 330aa77609 Esempi sui cursori
2019-09-13 20:02:16 +02:00

52 lines
1.2 KiB
SQL

-- Esempio di cursore esplicito
DECLARE
V_CODICEFID SCONTRINI.CODFID%TYPE := &CODFID;
V_AMMPREMIO NUMBER;
-- CREAZIONE CURSORE
CURSOR C_PREMIO
IS
SELECT
NVL(COUNT(*), 0) AS NUMSPESE
FROM
SCONTRINI
WHERE
CODFID = V_CODICEFID;
V_PREMIO C_PREMIO%ROWTYPE;
BEGIN
DBMS_OUTPUT.PUT_LINE('Apertura Cursore');
OPEN C_PREMIO;
DBMS_OUTPUT.PUT_LINE('Fetch Cursore');
FETCH
C_PREMIO
INTO
V_PREMIO;
IF C_PREMIO%FOUND THEN
DBMS_OUTPUT.PUT_LINE('RECORD TROVATO');
DBMS_OUTPUT.PUT_LINE('Numero di Spese: ' || V_PREMIO.NUMSPESE);
IF V_PREMIO.NUMSPESE > 10 THEN
V_AMMPREMIO := 10;
ELSIF V_PREMIO.NUMSPESE > 5 AND V_PREMIO.NUMSPESE < 10 THEN
V_AMMPREMIO := 5;
ELSE
V_AMMPREMIO := 0;
END IF;
END IF;
DBMS_OUTPUT.PUT_LINE ('CHIUSURA DEL CURSORE');
CLOSE C_PREMIO;
IF V_AMMPREMIO > 0 THEN
DBMS_OUTPUT.PUT_LINE('Complimenti hai ottenuto un premio di ' || V_AMMPREMIO || ' coupon' );
ELSE
DBMS_OUTPUT.PUT_LINE('Spiacente, non hai ottenuto alcun premio');
END IF;
EXCEPTION
WHEN OTHERS THEN
IF C_PREMIO%ISOPEN THEN
CLOSE C_PREMIO;
END IF;
END;