oracle判斷空值的函數(shù) oracle觸發(fā)器怎么判斷條件?
oracle觸發(fā)器怎么判斷條件?oracle判斷為空是用is null不是=null;在oracle中=null一直都是返回false的。另外最好加上exception判斷:IF :new.s_ID
oracle觸發(fā)器怎么判斷條件?
oracle判斷為空是用is null不是=null;
在oracle中=null一直都是返回false的。
另外最好加上exception判斷:
IF :new.s_ID IS NULL THEN
BEGIN
SELECT c_id into :new.s_ID from classs where c_sid=:NEW.s_cid
EXCEPTION
WHEN no_data_found THEN
SELECT 0 INTO :new.s_ID FROM dual --或者其他操作
END
END IF
當(dāng)在classs表中沒有找到對(duì)應(yīng)的記錄時(shí)不至于出錯(cuò),看你要怎么設(shè)計(jì)咯。
ORACLE中觸發(fā)器的判斷IF語句?
加一行NULL即可例如:SQL>DECLARE2testvalueINT3BEGIN4testvalue:=20056IFtestvalue>100THEN78ELSIFtestvalue=100THEN9dbms_output.put_line("100")10ELSE11dbms_output.put_line("100-")12ENDIF1314END15/ELSIFtestvalue=100THEN*ERROR位于第8行:ORA-06550:第8行,第9列:PLS-00103:出現(xiàn)符號(hào)"TESTVALUE"在需要下列之一時(shí)::=.(@%ORA-06550:第14行,第4列:PLS-00103:出現(xiàn)符號(hào)""在需要下列之一時(shí):if上面的例子,可以看出,如果IFELSE里面,沒有內(nèi)容,那么編譯不通過。下面是加一行NULL通過的例子:SQL>DECLARE2testvalueINT3BEGIN4testvalue:=20056IFtestvalue>100THEN7NULL8ELSIFtestvalue=100THEN9dbms_output.put_line("100")10ELSE11dbms_output.put_line("100-")12ENDIF1314END15/PL/SQL過程已成功完成。