如果我问一个已经回答的问题,我很抱歉,但我找不到任何答案。我在Oracle 10中编写了一个触发器,在那里我将2个日期作为数字进行比较,但是我有一个问题,如果第二个值为null。
我有两个表:Herci
(dat_umr_her:date
)和filmy
(rok_vyd:integer
)。
问题是dat_umr_her
有时是NULL
,然后我无法插入任何新的Herec,因为在if语句中引发了一个应用程序错误。
CREATE OR REPLACE TRIGGER "XVIKD00"."DATUM_UMRTIA_HEREC"
BEFORE INSERT OR UPDATE
ON HERCI
FOR EACH ROW
DECLARE
l_ROK_VYDANIA filmy.ROK_VYD%TYPE;
BEGIN
SELECT FILMY.ROK_VYD
INTO l_ROK_VYDANIA
FROM FILMY
WHERE FILMY.ID_FILM = :new.ID_HEREC;
IF( extract( year from :new.dat_umr_her ) < l_ROK_VYDANIA )
THEN
RAISE_APPLICATION_ERROR(-2009,'Dátumy nie su v správnom časovom slede');
END IF;
END;