PL SQL每日一題 含有NULL的IF條件

2021-08-27 09:07:57 字數 1497 閱讀 6126

哪些選項在執行之後會顯示"hello earth"?

(a)

declare

l_total number;

l_name varchar2 (10) := 'pl/sql';

begin

if l_name = 'pl/sql' or l_total > 100

then

dbms_output.put_line ('hello earth');

else

dbms_output.put_line ('hello moon');

end if;

end;

/(b)

declare

l_total number;

l_name varchar2 (10) := 'pl/sql';

begin

if l_total > 100

then

dbms_output.put_line ('hello earth');

else

dbms_output.put_line ('hello moon');

end if;

end;

/(c)

declare

l_total number;

l_name varchar2 (10) := 'pl/sql';

begin

if l_total > 100 or l_total is null

then

dbms_output.put_line ('hello earth');

else

dbms_output.put_line ('hello moon');

end if;

end;

/(d)

declare

l_total number;

l_name varchar2 (10) := 'pl/sql';

begin

if nvl (l_total, 200) > 100

then

dbms_output.put_line ('hello earth');

else

dbms_output.put_line ('hello moon');

end if;

end;

/

答案:acd

a: 未初始化的變數為null, if條件相當於if true or null, 前面的true會導致or被忽略,整個結果還是true

b: 未初始化的變數為null, if條件裡的表示式被求值為null, **會走到else裡面去。

c: if 裡面用了is null, 結果為true

d: nvl把null變成了200, 結果為true

PL SQL每日一題 含有NULL的IF條件

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 ...

PL SQL每日一題 含有NULL的IF條件

哪些選項在執行之後會顯示 hello earth a declare l total number l name varchar2 10 pl sql begin if l name pl sql or l total 100 then dbms output.put line hello eart...

PL SQL每日一題 異常處理 WHEN子句

題目 捕獲除數為零的錯誤 ora 01476 divisor is equal to zero 並且在這種情況下顯示 bad division 所有的其他異常都必須原封不動地傳播到呼叫塊 換句話說,如果我加入下列異常處理部分然後執行如下 塊 begin plch proc 0 plch proc 1...