设为首页
收藏本站
开启辅助访问
切换到窄版
登录
立即注册
中问网首页
我的收藏
站长博客
搜索
搜索
本版
帖子
用户
第一问答网
»
论坛
›
中问网
›
问答
›
PL/SQL Challenge 每日一题:2015-6-10 在条件比较中使 ...
返回列表
发新帖
PL/SQL Challenge 每日一题:2015-6-10 在条件比较中使用NULL
[复制链接]
11
|
1
|
2008-9-15 01:28:12
|
显示全部楼层
|
阅读模式
(原发表于2010-11-22)
最先答对且答案未经编辑的puber将获得纪念章一枚(答案不可编辑但可发新贴补充或纠正),其他会员如果提供有价值的分析、讨论也可获得纪念章一枚。
以往旧题索引:
http://www.itpub.net/forum.php?m ... eid&typeid=1808
原始出处:
http://www.plsqlchallenge.com/
作者:Steven Feuerstein
运行环境:SQLPLUS, SERVEROUTPUT已打开
注:本题给出答案时候要求给予简要说明才能得到奖品
我成功地编译了下列过程(换言之,所有在handle_illness中引用到的过程都是有效的,调用也是正确的):
CREATE OR REPLACE PROCEDURE handle_illness (
sneezes_per_hour_in IN PLS_INTEGER)
IS
BEGIN
IF NOT (sneezes_per_hour_in < 50)
THEN
call_doctor ();
sneeze_wetly_into_phone ();
make_appointment ();
ELSE
sorry_you_are_not_that_sick ();
END IF;
END;
/
哪些说法正确描述了我执行下列代码块之后的情形:
BEGIN
handle_illness (NULL);
END;
/
(A)
所有引用到的过程都不会被执行,因为ORACLE在IF语句中一旦碰到NULL值就会抛出VALUE_ERROR。
(B)
sorry_you_are_not_that_sick 过程会被执行。
(C)
NULL 并不会小于50, 因此 "NOT (sneezes_per_hour_in < 50)" 表达式的值为TRUE, 因此过程 call_doctor, sneeze_wetly_into_phone 和 make_appointment 都会被执行。
回复
使用道具
举报
千问
|
2008-9-15 01:28:12
|
显示全部楼层
答案B, 2楼得奖。
A: 在条件语句中的NULL值并不会导致VALUE_ERROR异常。
B,C: NULL和50的比较结果是NULL, 加上NOT之后也仍然是NULL, 所以IF条件不成立,ELSE分支将被执行。
回复
使用道具
举报
返回列表
发新帖
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
本版积分规则
发表回复
回帖后跳转到最后一页
千问
主题
0
回帖
4882万
积分
论坛元老
论坛元老, 积分 48824836, 距离下一级还需 -38824837 积分
论坛元老, 积分 48824836, 距离下一级还需 -38824837 积分
积分
48824836
加好友
发消息
回复楼主
返回列表
问答
热门排行
1
宝宝做[多指]手术十天了还需要去检查吗?
2
手指[多指]手术可以彻底的治好吗?
3
新生儿生下来右手大拇指多了一个手指?
4
[六指]到底是什么原因引起的呢?
5
新生儿[六指]畸形到底是什么原因引起的?
6
婴儿天生[六指]的原因都有什么呢?
7
[多指]畸形什么时候手术去做手术更好一点?
8
右手大拇指[多指]畸形应该怎么办才好?
9
婴儿多大可以做[多指]手术时候好一点?
10
新生儿右手拇指[多指]手术什么时候好点?
11
新生儿[并指]原因到底是什么引起的呢?
12
[六指]畸形手术时间选择什么时候做更好一点?
13
[多指]手术到底应该怎么治才好一点?
14
婴儿多大可以做[多指]手术彻底的治好?
15
新生儿[六指]什么时候手术做好一点呢?
16
婴儿多大可以做[多指]手术才好一点?
17
切除[六指]手术一共需要多少钱?
18
婴儿多大可以做[多指]手术回会更好一点?
19
小孩[多指]能选择去做手术安全吗?
20
[六指]畸形什么时候手术去做好一点呢?