Ver Mensaje Individual
  #1 (permalink)  
Antiguo 29/11/2007, 12:41
angel3d3
 
Fecha de Ingreso: noviembre-2007
Mensajes: 6
Antigüedad: 17 años
Puntos: 0
pbroblemas con una encuesta

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