Olá Claudio, 
tente o seguinte

 If ((:new.NOMFAN <> :old.NOMFAN)  Or
     (:new.NOMFAN Is null and :old.NOMFAN is not null) Or
     (:new.NOMFAN Is not null and :old.NOMFAN is null)) 
 Then

       insert into solution.auditcoluna (seqcol, nomcol, 

       valold, valnew, seqtab)

       values (solution.seq_auditcoluna.nextval, 'NOMFAN',

       :old.NOMFAN, :new.NOMFAN, v_seqaudittabela);

 End If

[]'s


;-----Original Message-----
From: oracle_br@yahoogrupos.com.br
[mailto:[EMAIL PROTECTED] Behalf Of Claudio Marques
Sent: quinta-feira, 16 de fevereiro de 2006 11:57
To: oracle_br@yahoogrupos.com.br
Subject: RES: [oracle_br] Duvida Com Trigger


Não posso nvl(:new.NOMFAN,0) <> nvl(:old.NOMFAN,0)

 

Pois os campos podem ser data, numero, string..

 

  _____  

De: oracle_br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] Em
nome de Claudio Marques
Enviada em: quinta-feira, 16 de fevereiro de 2006 10:21
Para: oracle_br@yahoogrupos.com.br
Assunto: [oracle_br] Duvida Com Trigger

 

Tenho um trigger como no exemplo a baixo e ta acontecendo um coisa estranho,
com esse bloco aqui. Veja:



    If :new.NOMFAN <> :old.NOMFAN Then

       insert into solution.auditcoluna (seqcol, nomcol, 

       valold, valnew, seqtab)

       values (solution.seq_auditcoluna.nextval, 'NOMFAN',

       :old.NOMFAN, :new.NOMFAN, v_seqaudittabela);

    End If;



Se um dos campos forem nulo, ele nao execulta o camando que está entre o if,
pq?



    If :new.NOMFAN <> :old.NOMFAN Then





Alguem pode me ajuda..



O que Devo Fazer pra resolver essa situação?



CREATE OR REPLACE TRIGGER TRG_AUDIT_TABUSI

AFTER INSERT OR UPDATE OR DELETE ON SOLUTION.TABUSI

REFERENCING NEW AS NEW OLD AS OLD FOR EACH ROW

Declare

  v_opcao          varchar(6);

  v_seqaudittabela Number(30);

Begin

  If Updating Then

    If :new.NOMFAN <> :old.NOMFAN Then

       insert into solution.auditcoluna (seqcol, nomcol, 

       valold, valnew, seqtab)

       values (solution.seq_auditcoluna.nextval, 'NOMFAN',

       :old.NOMFAN, :new.NOMFAN, v_seqaudittabela);

    End If;

  ElsIf ( Inserting ) Or ( Deleting ) Then

     insert into solution.auditcoluna (seqcol, nomcol, 

     valold, valnew, seqtab)

     values (solution.seq_auditcoluna.nextval, 'NOMFAN',

     :old.NOMFAN, :new.NOMFAN, v_seqaudittabela);

  End If;

End; 



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



----------------------------------------------------------------------------
----------------------------------------------
Atenção! As mensagens deste grupo são de acesso público e de inteira
responsabilidade de seus remetentes.
Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/ 
----------------------------------------------------------------------------
----------------------------------------------______________________________
____________________________________
Este Grupo recebe o apoio da SQL Magazine - www.devmedia.com.br/sqlmagazine 







Yahoo! Grupos, um serviço oferecido por:



PUBLICIDADE
 
<http://br.ard.yahoo.com/SIG=12fj81kns/M=396547.7942355.8808049.2369893/D=br
clubs/S=2137114689:HM/Y=BR/EXP=1140103470/A=3291957/R=2/SIG=154bf6ok5/*http:
/lt.dell.com/lt/lt.aspx?CID=11305&LID=309989&DGC=BA&DGSeg=DHS&DURL=http://ww
w1.la.dell.com/content/products/category.aspx/desktops?c%3dbr%26l%3dpt%26s%3
ddhs> 

 
<http://br.i1.yimg.com/br.yimg.com/i/br/ads7/100206_y300x250feb10_dhs_dim515
0.gif> 

 

  _____  

Links do Yahoo! Grupos

*       Para visitar o site do seu grupo na web, acesse:
http://br.groups.yahoo.com/group/oracle_br/
  
*       Para sair deste grupo, envie um e-mail para:
[EMAIL PROTECTED]
<mailto:[EMAIL PROTECTED]> 
  
*       O uso que você faz do Yahoo! Grupos está sujeito aos Termos do
Serviço do <http://br.yahoo.com/info/utos.html>  Yahoo!. 



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



--------------------------------------------------------------------------------------------------------------------------
Atenção! As mensagens deste grupo são de acesso público e de inteira 
responsabilidade de seus remetentes.
Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/ 
--------------------------------------------------------------------------------------------------------------------------__________________________________________________________________
Este Grupo recebe o apoio da SQL Magazine - www.devmedia.com.br/sqlmagazine 

 
Links do Yahoo! Grupos




 




--------------------------------------------------------------------------------------------------------------------------
Atenção! As mensagens deste grupo são de acesso público e de inteira 
responsabilidade de seus remetentes.
Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/ 
--------------------------------------------------------------------------------------------------------------------------__________________________________________________________________
Este Grupo recebe o apoio da SQL Magazine - www.devmedia.com.br/sqlmagazine 

 
Links do Yahoo! Grupos

<*> Para visitar o site do seu grupo na web, acesse:
    http://br.groups.yahoo.com/group/oracle_br/

<*> Para sair deste grupo, envie um e-mail para:
    [EMAIL PROTECTED]

<*> O uso que você faz do Yahoo! Grupos está sujeito aos:
    http://br.yahoo.com/info/utos.html

 


Responder a