Oracle - Problema con cursor parametrizado

 
Vista:

Problema con cursor parametrizado

Publicado por Tomas (1 intervención) el 19/05/2012 12:52:24
MI intención es realizar un procedimiento que mediante un cursor variable pueda comprobar la existencia de dos codigos(origen,destino). He implementado el siguiente codigo y me marca error en la línea 14 y no veo el problema. Os agradeceria vuestra ayuda para entender el problema.

codigo:
/***************************************************************/
CREATE OR REPLACE PROCEDURE MOVERFAMILIA(
origen familias.identificador%TYPE,
destino familias.identificador%TYPE ) AS

/*Declaro variables:*/
/*Cursor parametrizado*/
CURSOR c1 (codigo familias.identificador%TYPE) IS SELECT * FROM FAMILIAS WHERE familias.cod=codigo;
/*Defino variable donde almacenar cada una de las limeas del cursor;*/
registro c1%ROWTYPE;
origenNo EXCEPTION;
destinoNo EXCEPTION;
BEGIN
OPEN c1(origen);
FETCH c1 INTO registro;
IF c1%NOTFOUND THEN
RAISE origenNo;
END IF;
CLOSE c1;
EXCEPTION
WHEN origenNo THEN RAISE_APPLICATION_ERROR(-20300,'Codigo de origen no existe.');
end;
/

/*********************************************************************/
Tabla sobre la que me baso:

create table familias (

identificador number(6) not null primary key,

nombre varchar2(40) not null unique,

familia number(6) references familias,

oficina number(6) references oficinas

);
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Problema con cursor parametrizado

Publicado por Ana (1 intervención) el 19/05/2012 14:47:46
El problema esta en la linea que defines el cursor , familias.cod no existe. Deberia ser:

CURSOR c1 (codigo familias.identificador%TYPE) IS SELECT * FROM FAMILIAS WHERE familias.identificador=codigo;
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar