Problemas con Cursor Dinámico
Publicado por conkeror (5 intervenciones) el 25/01/2006 00:41:05
El trigger en cuestión es el siguiente:
CREATE OR REPLACE TRIGGER scott.cheq_salguide BEFORE UPDATE OR DELETE OF job, minsal, maxsal ON scott.sal_guide for each row
DECLARE
TYPE reg IS RECORD (job emp.job%TYPE, sal emp.salar%TYPE );
empleado reg;
TYPE Datos IS REF CURSOR RETURN reg;
Datos.emp Datos;
BEGIN
OPEN CURSOR Datos FOR SELECT job, sal FROM scott.emp WHERE sal >= :new.minsal AND sal <= :new.maxsal;
FOR empleado IN Datos
LOOP
IF DELETING AND empleado.sal>=:new.minsal AND empleado.sal<=:new.maxsal THEN
RAISE_APPLICATION_ERROR( -20325,'No se puede eliminar esta tupla de SAL_GUIDE ya que hay empleados con salarios comprendidos entre sus
limites') ;
END IF;
END LOOP;
END;
Y el error este:
Errores para TRIGGER SCOTT.CHEQ_SALGUIDE:
LINE/COL ERROR
-------- -----------------------------------------------------------------
9/6 PLS-00103: Se ha encontrado el símbolo "." cuando se esperaba uno
de los siguientes:
constant exception <an identifier>
<a double-quoted delimited-identifier> table LONG_ double ref
char time timestamp interval date binary national character
nchar
Llevo bastante tiempo dandole vueltas :S, pero en ningún sitio encuentro explicaciones sobre cursores dinámicos.
Muchas gracias de antemano.
CREATE OR REPLACE TRIGGER scott.cheq_salguide BEFORE UPDATE OR DELETE OF job, minsal, maxsal ON scott.sal_guide for each row
DECLARE
TYPE reg IS RECORD (job emp.job%TYPE, sal emp.salar%TYPE );
empleado reg;
TYPE Datos IS REF CURSOR RETURN reg;
Datos.emp Datos;
BEGIN
OPEN CURSOR Datos FOR SELECT job, sal FROM scott.emp WHERE sal >= :new.minsal AND sal <= :new.maxsal;
FOR empleado IN Datos
LOOP
IF DELETING AND empleado.sal>=:new.minsal AND empleado.sal<=:new.maxsal THEN
RAISE_APPLICATION_ERROR( -20325,'No se puede eliminar esta tupla de SAL_GUIDE ya que hay empleados con salarios comprendidos entre sus
limites') ;
END IF;
END LOOP;
END;
Y el error este:
Errores para TRIGGER SCOTT.CHEQ_SALGUIDE:
LINE/COL ERROR
-------- -----------------------------------------------------------------
9/6 PLS-00103: Se ha encontrado el símbolo "." cuando se esperaba uno
de los siguientes:
constant exception <an identifier>
<a double-quoted delimited-identifier> table LONG_ double ref
char time timestamp interval date binary national character
nchar
Llevo bastante tiempo dandole vueltas :S, pero en ningún sitio encuentro explicaciones sobre cursores dinámicos.
Muchas gracias de antemano.
Valora esta pregunta


0