'!='操作时,其中一个字段可能为NULL,sql

时间:2013-11-06 17:02:05

标签: sql oracle unix sun

我在这里有一个sql包,当我插入或更新一个表时会触发它。 这是(非常简化)

的关键部分
IF ( UPDATING ) THEN
        IF ( V_OLD_DATE  != V_NEW_DATE ) THEN
                  ---- do stuff

因此,只要V_OLD_DATE被填充,它就可以正常工作,但是,V_OLD_DATE可以为NULL,这会搞乱此触发器的结果。

对于这种情况,有没有“cannonical”解决方案?我能做的最好的事情是预先查看V_OLD_DATE

   IF ( UPDATING ) THEN
                IF ( (V_OLD_DATE is NULL and V_NEW_DATE is not NULL) OR 
                           V_OLD_DATE  != V_NEW_DATE ) THEN
                               ---- do stuff

谢谢

1 个答案:

答案 0 :(得分:0)

您可以在Oracle中使用NVL。您可以访问以下链接了解详情:

https://forums.oracle.com/thread/2186954