Ayuda para un trigger

ged
27 de Octubre del 2004
Buenas:
Estoy trabajando con Oracle9i, y tengo una tabla "usuarios", otra "instalaciones" y otra "reservan". La tabla reservan tiene un campo de tipo fecha que se llama "fecha", otro de tipo varchar2(5) que es la hora de inicio (hora_ini) y otro de tipo varchar2(5) que es la hora de fin (hora_fin) de la reserva de la instalacion. Estoy intentando hacer un trigger en el que tengo que restringir que no se pueda insertar una fila nueva en la tabla "reservan" cuando el dia de reserva de una instalacion sea domingo y la hora de inicio de reserva sea despues de las 14:30 o la hora de fin sobrepase las 14:30. El codigo que utilizo es el siguiente:
CREATE OR REPLACE TRIGGER restr_inst
AFTER INSERT OR UPDATE OF hora_ini,hora_fin,fecha ON RESERVAN
DECLARE
H_INI VARCHAR2(5);
H_FIN VARCHAR2(5);
FEC DATE;
DIA NUMBER(1);
BEGIN
SELECT HORA_INI, HORA_FIN, FECHA INTO H_INI,H_FIN,FEC
FROM RESERVAN;

SELECT (TO_NUMBER(TO_CHAR(FEC,'D'))) INTO DIA FROM reservan;

IF (DIA= 7) THEN
IF (H_INI> '14:30') OR (H_FIN> '14:30') THEN
RAISE_APPLICATION_ERROR(-20000,'IMPOSIBLE REALIZAR LA RESERVA');
END IF;
END IF;
END restr_inst;

Agradeceria mucho una ayudita...
Gracias

ged
27 de Octubre del 2004
Lo siento. Se me ha olvidado poner el error que me da al ejecutarlo.
ORA-20000: IMPOSIBLE REALIZAR LA RESERVA
/* Por ahora funciona*/
ORA-06512: en "AULA.RESTR_INST" linea 14
ORA-04088: error durante la ejecucion del disparador 'AULS.RESTR_INST'

¿Qué puedo estar haciendo mal?
Gracias