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
54
55
(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條件
哪些選項在執行之後會顯示 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每日一題 含有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...