Bom dia pessoal,

Esse é meu primeiro post e já agradeço antecipado pela ajuda.

Tenho a seguinte estrutura:

create or replace type compromisso as object (
       data date,
       inicio date,
       duracao number(4),
       descricao varchar(255)
);


create or replace type compromisso_lista as table of compromisso;

create or replace type usuario as object (
       codigo number(4),
       nome varchar(40),
       compromissos compromisso_lista
);

create table usuarios of usuario (
       codigo primary key
)
nested table compromissos store as compromissos_st;


Como faço para criar uma trigger que seja disparada ao inserir ou atualizar
a nested table com o intuito de evitar choque de horário entre os
compromissos cadastrados para um usuário?

Por exemplo:

insert into table(select u.compromissos from usuarios u where u.codigo = 1)
values (to_date(11/11/2008', 'DD/MM/YYYY'), to_date(11/11/2008 12:00',
'DD/MM/YYYY HH24:MI', 120, 'tirar dúvidas');

Caso o compromisso abaixo fosse inserido um erro seria retornado devido ao
choque de horário:

insert into table(select u.compromissos from usuarios u where u.codigo = 1)
values (to_date(11/11/2008', 'DD/MM/YYYY'), to_date(11/11/2008 13:00',
'DD/MM/YYYY HH24:MI', 120, 'tirar dúvidas');

Pois, o compromisso anterior começa 12:00 mas tem duração de 120 minutos, ou
seja, às 13:00 não seria possível se cadastrar outro compromisso.


Alguma sugestão?


Obrigado,

Robert


[As partes desta mensagem que não continham texto foram removidas]

Responder a