Esempi sulle collezioni e i record
This commit is contained in:
63
record/RECORD_4.sql
Normal file
63
record/RECORD_4.sql
Normal file
@@ -0,0 +1,63 @@
|
||||
--Esempio di collezione di record definiti dall'utente
|
||||
DECLARE
|
||||
|
||||
CURSOR CLIENTI_CUR
|
||||
IS
|
||||
SELECT
|
||||
CODFIDELITY,
|
||||
NOME
|
||||
|| ' '
|
||||
|| COGNOME AS NOMINATIVO,
|
||||
BOLLINI,
|
||||
PROV
|
||||
FROM
|
||||
VW_CLIENTI
|
||||
WHERE
|
||||
CODFIDELITY IN
|
||||
(
|
||||
SELECT DISTINCT
|
||||
CODFID
|
||||
FROM
|
||||
SCONTRINI
|
||||
GROUP BY
|
||||
CODFID
|
||||
HAVING
|
||||
SUM(BOLLINI) > 500
|
||||
)
|
||||
ORDER BY
|
||||
BOLLINI DESC;
|
||||
|
||||
TYPE BEST_CLIFID_RECORD
|
||||
IS
|
||||
RECORD
|
||||
(
|
||||
CODFID VARCHAR(20),
|
||||
NOMINATIVO VARCHAR2(100),
|
||||
BOLLINI NUMBER,
|
||||
PROVINCIA VARCHAR2(3) );
|
||||
|
||||
TYPE CLIFID_ARRAY_TYPE
|
||||
IS
|
||||
TABLE OF BEST_CLIFID_RECORD INDEX BY PLS_INTEGER;
|
||||
|
||||
CLIFID_TAB CLIFID_ARRAY_TYPE;
|
||||
V_INDEX INTEGER := 0;
|
||||
|
||||
BEGIN
|
||||
FOR CLIENTI_REC IN CLIENTI_CUR
|
||||
LOOP
|
||||
V_INDEX := V_INDEX + 1;
|
||||
|
||||
CLIFID_TAB(V_INDEX).CODFID := CLIENTI_REC.CODFIDELITY;
|
||||
CLIFID_TAB(V_INDEX).NOMINATIVO := CLIENTI_REC.NOMINATIVO;
|
||||
CLIFID_TAB(V_INDEX).BOLLINI := CLIENTI_REC.BOLLINI;
|
||||
CLIFID_TAB(V_INDEX).PROVINCIA := CLIENTI_REC.PROV;
|
||||
|
||||
DBMS_OUTPUT.PUT_LINE ('Posizione: '|| V_INDEX);
|
||||
DBMS_OUTPUT.PUT_LINE ('NOMINATIVO: '||CLIFID_TAB(V_INDEX).NOMINATIVO);
|
||||
DBMS_OUTPUT.PUT_LINE ('CODFID: '||CLIFID_TAB(V_INDEX).CODFID);
|
||||
DBMS_OUTPUT.PUT_LINE ('BOLLINI: '||CLIFID_TAB(V_INDEX).BOLLINI);
|
||||
DBMS_OUTPUT.PUT_LINE ('Prov: '||CLIFID_TAB(V_INDEX).PROVINCIA);
|
||||
|
||||
END LOOP;
|
||||
END;
|
||||
Reference in New Issue
Block a user