CURSORES ANIDADOS

tema enviado por eusojPLSQL en ORACLE
tema iniciado el 28/03/2008
Que tal a todos tengo un problema con mi codigo: trabajo con ORACLE10g he creado 3 tablas con este codigo: CREATE TABLE ALU1415 ( NUMCON VARCHAR2(8), APEPAT VARCHAR2(15) NOT NULL, APEMAT VARCHAR2(15) NOT NULL, NOMALU VARCHAR2(20) NOT NULL, CONSTRAINT ALU1415_PK PRIMARY KEY (NUMCON) ); CREATE TABLE MAT1415 ( CLAMAT VARCHAR2(4), NOMMAT VARCHAR2(30) NOT NULL, CONSTRAINT MAT1415_PK PRIMARY KEY (CLAMAT) ); CREATE TABLE EVA1415 ( EVAUNI NUMBER(2), CALUNI NUMBER(3) NOT NULL, NCONAE VARCHAR2(8), CMATME VARCHAR2(4), CONSTRAINT EVA1415_PK PRIMARY KEY (EVAUNI, NCONAE, CMATME), CONSTRAINT EVA1415_FK1 FOREIGN KEY (NCONAE) REFERENCES ALU1415(NUMCON), CONSTRAINT EVA1415_FK2 FOREIGN KEY (CMATME) REFERENCES MAT1415(CLAMAT) ); y tengo 35 registros en la tabla ALU1415 y quiero que el cursor que estoy haciendo al recorrer los registros y que por cada registro de ALU1415 vaya insertando tuplas en la tabla EVA1415(que esta vacia) es decir que al finalizar el cursor tenga tambien 35reg en EVA1415 este es el cursor que he escrito: DECLARE CURSOR CAPTURAR IS SELECT EVAUNI, CALUNI, NCONAE, CMATME FROM EVA1415; CURSOR RECORRER IS SELECT NUMCON FROM ALU1415; --DECLARAMOS LAS VARIABLES A UTILIZAR NUM_CONTROL VARCHAR2(8); CLAVE_MAT VARCHAR2(4); NUM_UNIDAD NUMBER(2); CALIF_UNID NUMBER(3); BEGIN OPEN RECORRER; LOOP FETCH RECORRER INTO NUM_CONTROL; ------------------------------------------------------------------- OPEN CAPTURAR; LOOP FETCH CAPTURAR INTO NUM_UNIDAD, CALIF_UNID, NUM_CONTROL, CLAVE_MAT; INSERT INTO EVA1415 VALUES ('&NUM_UNIDAD', '&CALIF_UNID', 'NUM_CONTROL', '&CLAVE_MAT'); EXIT WHEN CAPTURAR%NOTFOUND; END LOOP; CLOSE CAPTURAR; ------------------------------------------------------------------ EXIT WHEN RECORRER%NOTFOUND; END LOOP; CLOSE RECORRER; COMMIT; END; y cuando lo corro me reporta el siguiente error: ORA-00001: restricción única (SYSTEM.EVA1415_PK) violada ORA-06512: en línea 21 00001. 00000 - "unique constraint (%s.%s) violated" *Cause: An UPDATE or INSERT statement attempted to insert a duplicate key. For Trusted Oracle configured in DBMS MAC mode, you may see this message if a duplicate entry exists at a different level. *Action: Either remove the unique restriction or do not insert the key. OJALA ALGUIEN ME PUDIESE AYUDAR gracias