Salve a tutti chiedo un grandissimo aiuto.
sto creando delle procedure il PL\sql con oracle ma questa procedura mi sta dando parecchie rogne
prendiamo in considerazione le 2 tabelle che mi servono in questa procedura
CLIENTI E VIAGGIO
in clienti ci son molti attributi tra cui un cod_matricola PK
e un codice fiscale
mentre in viaggi abbiamo in ID_viaggio
cod_cliente ovvero la FK a cod_matricola
e altri atribbuti che non ci interessano
in pratica questa procedura deve vedere se un cliente ha piu di 2 vetture (facendo un caunt sul codice fiscale) e inserirlo nella tabella viaggio sempre se in questultima non sia gia inserito

ovvero cliente 101 ha 3 assicurazioni ok vince 1 viaggio
oppure
cliente 101 ha 4 assicurazioni ma e gia inserito in viaggi quindi non vince nulla XD









Codice PHP:



CREATE 
OR REPLACE PROCEDURE P3(ID_VIAGGIO VARCHAR2,LUOGO VARCHAR2,GIORNI NUMBER,D_PARTENZA VARCHAR2,COD_CLIENTE VARCHAR2,COD_AGENZIA VARCHAR2)IS
CURSOR CONTROLLOVIAGGI IS 
(SELECT COUNT(CC_F),MIN(C_MATRICOLA),CC_F FROM CLIENTE GROUP BY CC_F HAVING COUNT(CC_F)>=2);
CURSOR VIAGG IS (SELECT COD_CLIENTE FROM VIAGGIO WHERE COD_CLIENTE IS NOT NULL);
A NUMBER :=0; --i del for (controllo viaggi)
B NUMBER :=0; -- i del for (viagg)
C_MATRI CLIENTE.C_MATRICOLA%TYPE; --matricola presente nella tabella cliente
C_VIAGGIO VIAGGIO
.COD_CLIENTE%TYPE; - codice viaggio presente nella tabella viaggio
VIAGGIO_NOT_FOUND EXCEPTION
;
BEGIN
FOR B IN VIAGG LOOP
FOR A IN CONTROLLOVIAGGI LOOP
IF(C_MATRI=C_VIAGGIOTHEN
RAISE VIAGGIO_NOT_FOUND
;
END IF;
END LOOP CONTROLLOVIAGGI;
END LOOP VIAGG;
EXCEPTION
WHEN VIAGGIO_NOT_FOUND THEN
DBMS_OUTPUT
.PUT_LINE('CLIENTE GIA PRESENTE');
RAISE_APPLICATION_ERROR(-20000,'CLIENTE GIA VINCITORE');
END P3



qui vi allego la creazione delle 2 tabelle per chiarirvi piu le idee credo che il mio errore sia nei 2 cicli for innestati




Codice PHP:

CREATE TABLE CLIENTE
(
C_MATRICOLA VARCHAR2(20PRIMARY KEY,
LAVORO VARCHAR2(20) DEFAULT 'DISOCCUPATO',
ETA NUMBER NOT NULL,
CC_F VARCHAR2(16NOT NULL,
ID_RICH VARCHAR2(5NOT NULL,
FOREIGN KEY (CC_FREFERENCES Persona(CF),
FOREIGN KEY (ID_RICHREFERENCES RICHIEDENTE(ID_RICHIEDENTE));



CREATE TABLE VIAGGIO(
ID_VIAGGIO VARCHAR2(4PRIMARY KEY,
LUOGO VARCHAR2(20NOT NULL,
GIORNI NUMBER NOT NULL,
D_PARTENZA VARCHAR2(10NOT NULL,
COD_CLIENTE VARCHAR2(20),
COD_AGENZIA VARCHAR2(10),
FOREIGN KEY (COD_CLIENTEREFERENCES CLIENTE(C_MATRICOLA),
FOREIGN KEY (COD_AGENZIAREFERENCES LUOGO_LAVORO(ID_LAVORO)); 

vi prego aiutatemi sto semplicemente sclerando