Buenas tardes. tengo una en cuesta cuyas tablas son las siguientes:
create table PREGUNTAS (
PREGUNTA_ID NUMBER not null,
PREGUNTA VARCHAR(200),
ESTATUS VARCHAR(20),
FECHA_ULT_MODIF TIMESTAMP,
constraint PK_PREGUNTAS primary key (PREGUNTA_ID)
);
create table RESPUESTAS (
RESPUESTA_ID NUMBER not null,
PREGUNTA_ID NUMBER,
OPCION VARCHAR(200),
RESPUESTA NUMBER,
constraint PK_RESPUESTAS primary key (RESPUESTA_ID)
);
alter table RESPUESTAS
add constraint FK_RESPUEST_REFERENCE_PREGUNTA foreign key (PREGUNTA_ID)
references PREGUNTAS (PREGUNTA_ID);
las columnas ID tienen una secuencia que se ejecuta con el trigger:
-- Integrity package declaration
create or replace package IntegrityPackage AS
procedure InitNestLevel;
function GetNestLevel return number;
procedure NextNestLevel;
procedure PreviousNestLevel;
end IntegrityPackage;
/
-- Integrity package definition
create or replace package body IntegrityPackage AS
NestLevel number;
-- Procedure to initialize the trigger nest level
procedure InitNestLevel is
begin
NestLevel := 0;
end;
-- Function to return the trigger nest level
function GetNestLevel return number is
begin
if NestLevel is null then
NestLevel := 0;
end if;
return(NestLevel);
end;
-- Procedure to increase the trigger nest level
procedure NextNestLevel is
begin
if NestLevel is null then
NestLevel := 0;
end if;
NestLevel := NestLevel + 1;
end;
-- Procedure to decrease the trigger nest level
procedure PreviousNestLevel is
begin
NestLevel := NestLevel - 1;
end;
end IntegrityPackage;
/
/////////
-- Before insert trigger "TIB_PREGUNTAS" for table "PREGUNTAS"
create trigger TIB_PREGUNTAS before insert
on PREGUNTAS for each row
declare
integrity_error exception;
errno integer;
errmsg char(200);
dummy integer;
found boolean;
begin
-- Column "PREGUNTA_ID" uses sequence SEQUENCE_PREGUNTAS
select SEQUENCE_PREGUNTAS.NEXTVAL INTO :new.PREGUNTA_ID from dual;
-- Errors handling
exception
when integrity_error then
raise_application_error(errno, errmsg);
end;
/
-- Before insert trigger "TIB_RESPUESTAS" for table "RESPUESTAS"
create trigger TIB_RESPUESTAS before insert
on RESPUESTAS for each row
declare
integrity_error exception;
errno integer;
errmsg char(200);
dummy integer;
found boolean;
begin
-- Column "RESPUESTA_ID" uses sequence SEQUENCE_RESPUESTAS
select SEQUENCE_RESPUESTAS.NEXTVAL INTO :new.RESPUESTA_ID from dual;
-- Errors handling
exception
when integrity_error then
raise_application_error(errno, errmsg);
end;
/
Al ejecutar el SQL : INSERT INTO preguntas ( pregunta,estatus) VALUES('¿Qué país ganará la Copa Davis?','PENDIENTE')
obtengo el siguiente error: ORA-04098: el disparador 'ESQUEMA.TIB_PREGUNTAS' no es válido y ha fallado al revalidar
agradezco aquien pueda ayudarme con esto