Lógica para Trigger

Dúvidas, dicas e truques de PL/SQL. Aqui também vão assuntos relacionados a pacotes, triggers, funções, Java-Stored Procedures, etc
Responder
mariogus
Rank: Analista Sênior
Rank: Analista Sênior
Mensagens: 157
Registrado em: Sex, 30 Nov 2007 1:17 pm
Localização: Porto Alegre - RS

Pessoal,

Estou com um problema para montar essa trigger no qual preciso restringir o numdocumento (não pode ser duplicado) e quando o registro for igual a 1 (count) ele permite a inclusão desse registro senão o nome tem que ser igual a razao social



Trigger

Selecionar tudo

create or replace trigger PESSOA_AIU
  after  insert or update on cm.pessoa
  for each row
declare

r_pessoa  pessoa%rowtype;
begin

   ---Inclui apenas quando possuir cgc/cpf
   IF :new.numdocumento is not null and upper(trim(:new.nome))=upper(trim(:new.razaosocial)) THEN
   
         INSERT INTO cm_pessoa@itg(ID_PESSOA, DT_INSERCAO)
              VALUES(:new.idpessoa, sysdate);
   END IF;
   
   r_pessoa.nome := r_pessoa.razaosocial;
   --
end PESSOA_AIUD;
Avatar do usuário
fsitja
Rank: OraSauro
Rank: OraSauro
Mensagens: 611
Registrado em: Seg, 19 Jan 2009 4:29 pm
Localização: Gaúcho no Rio de Janeiro - RJ
"The scars exist to remind us that the past was real"
Campanha: Como fazer uma pergunta e obter uma resposta.
http://tkyte.blogspot.com/2005/06/how-t ... tions.html

OCA & OCP Developer — OCE SQL Expert — OCS Data Warehousing Specialist

Blza?

Cara, o check de existência do numdocumento tem que ser feito criando uma unique key constraint.

Quanto à outra restrição, não entendi o que você quis dizer... mas me parece algo que pode ser resolvido com um unique index. Posta alguns exemplos do que pode e do que não pode e reformula a explicação para eu entender melhor, por favor.
mariogus
Rank: Analista Sênior
Rank: Analista Sênior
Mensagens: 157
Registrado em: Sex, 30 Nov 2007 1:17 pm
Localização: Porto Alegre - RS

Pois é...Bom o fato é que essa trigger gera uma mutanting table ..porque alguns dos dados de restrição :

a) Não pode ter CNPJ (numdocumento) duplicado
b) O campo nome e Razao Social precisam ser iguais - devido a ter muitos CNPJs com uma matriz e as suas filiais

e no insert isso precisa ser validado..não sei se por uma trigger que no caso não estou conseguindo ou por um bloco que tenha essas restrições...
Responder
  • Informação
  • Quem está online

    Usuários navegando neste fórum: Nenhum usuário registrado e 5 visitantes