ITPUB论坛-中国最专业的IT技术社区

 找回密码
 注册
查看: 1919|回复: 5

[每日一题] PL/SQL Challenge 每日一题:2017-6-14 集合方法EXTEND

[复制链接]
论坛徽章:
460
进士
日期:2015-08-18 09:50:16秀才
日期:2015-09-09 10:33:01秀才
日期:2015-09-09 10:33:01秀才
日期:2015-09-09 10:33:01秀才
日期:2015-09-09 10:33:01秀才
日期:2015-09-09 10:33:01秀才
日期:2015-09-09 10:33:01秀才
日期:2015-09-09 10:33:01秀才
日期:2015-09-09 10:33:01目光如炬
日期:2015-11-22 22:00:00
发表于 2017-6-20 07:49 | 显示全部楼层 |阅读模式
(原发表于 2011-7-12)

最先答对且答案未经编辑的puber将获得纪念章一枚(答案不可编辑但可发新贴补充或纠正),其他会员如果提供有价值的分析、讨论也可获得纪念章一枚。

每两周的优胜者可获得itpub奖励的技术图书一本。

以往旧题索引:
http://www.itpub.net/forum.php?m ... eid&typeid=1808

原始出处:
http://www.plsqlchallenge.com/

作者:Steven Feuerstein

运行环境:SQLPLUS, SERVEROUTPUT已打开
注:本题给出答案时候要求给予简要说明才能得到奖品

哪些选项在把下面这个语句去除之后,执行不会出错?

l_answers.EXTEND (3);

(A)
DECLARE
   TYPE numbers_t IS TABLE OF NUMBER;

   l_answers   numbers_t := numbers_t ();
BEGIN
   l_answers.EXTEND (3);
   l_answers (3) := 100;
END;
/

(B)
DECLARE
   TYPE numbers_t IS TABLE OF NUMBER;

   l_answers   numbers_t := numbers_t ();
BEGIN
   l_answers.EXTEND (3);

   SELECT ROWNUM
     BULK COLLECT INTO l_answers
     FROM all_objects
    WHERE ROWNUM < 4;

   l_answers (3) := 100;
END;
/

(C)
DECLARE
   TYPE numbers_t IS TABLE OF NUMBER;

   l_answers   numbers_t := numbers_t (1, 2, 3);
BEGIN
   l_answers.EXTEND (3);
   l_answers (3) := 100;
END;
/

(D)
DECLARE
   TYPE numbers_t IS TABLE OF NUMBER;

   l_answers1   numbers_t := numbers_t (1);
   l_answers2   numbers_t := numbers_t (2, 3);
   l_answers    numbers_t := numbers_t ();
BEGIN
   l_answers.EXTEND (3);

   l_answers := l_answers1 MULTISET UNION l_answers2;

   l_answers (3) := 100;
END;
/
论坛徽章:
44
处女座
日期:2016-06-02 13:45:22马上有房
日期:2014-10-17 13:54:18阿斯顿马丁
日期:2014-01-06 13:43:47复活蛋
日期:2013-05-30 16:44:312013年新春福章
日期:2013-02-25 14:51:24蜘蛛蛋
日期:2013-02-08 09:53:14ITPUB 11周年纪念徽章
日期:2012-10-09 18:05:07奥运会纪念徽章:花样游泳
日期:2012-08-16 09:53:31迷宫蛋
日期:2013-05-10 18:23:20ITPUB十周年纪念徽章
日期:2011-11-01 16:20:28
发表于 2017-6-20 08:15 来自手机 | 显示全部楼层
我看B,C是对的,

使用道具 举报

回复
论坛徽章:
15
优秀写手
日期:2014-02-27 06:00:13秀才
日期:2017-06-29 10:16:48乌索普
日期:2017-05-26 08:58:24娜美
日期:2017-05-18 16:07:23ITPUB15周年纪念
日期:2017-05-02 15:22:36妮可·罗宾
日期:2017-04-06 10:06:19处女座
日期:2016-03-10 09:03:26白羊座
日期:2015-10-09 16:42:50慢羊羊
日期:2015-06-15 21:49:18金牛座
日期:2015-07-16 15:34:37
发表于 2017-6-20 08:59 | 显示全部楼层
BCD
B 初始化了3个元素;
C 批量绑定了3个元素;
D MULTISET UNION是求2个集合的并集,有3个元素;

使用道具 举报

回复
论坛徽章:
4
秀才
日期:2017-06-29 10:10:37秀才
日期:2017-06-29 10:16:48技术图书徽章
日期:2017-06-29 10:17:04秀才
日期:2017-06-29 10:17:04
发表于 2017-6-20 10:59 | 显示全部楼层
BCD
A.初始化一个集合为空,去掉extend,应该会报下标超过范围之类的错;

使用道具 举报

回复
论坛徽章:
460
进士
日期:2015-08-18 09:50:16秀才
日期:2015-09-09 10:33:01秀才
日期:2015-09-09 10:33:01秀才
日期:2015-09-09 10:33:01秀才
日期:2015-09-09 10:33:01秀才
日期:2015-09-09 10:33:01秀才
日期:2015-09-09 10:33:01秀才
日期:2015-09-09 10:33:01秀才
日期:2015-09-09 10:33:01目光如炬
日期:2015-11-22 22:00:00
 楼主| 发表于 2017-6-21 00:58 | 显示全部楼层
答案BCD, 3楼得奖。

A: 既然我在初始化的时候没有提供任何值,那么假设我没有用extend,对第三个索引值赋值100就会报错:
"ORA-06533: Subscript beyond count"

B:  BULK COLLECT会自动扩展目标集合,使得它有空间来容纳所有取到的行。
C: 实际上,你通常需要明确地在一个嵌套表或者可变数组中扩展来提供空间。
然而,在本例中,对构建函数的调用已经在索引位置1,2和3为三个元素提供了空间。
所以EXTEND在此处并不需要。
D: 对于 MULTISET操作符的结果所填充的集合,你并不需要进行extend。Oracle会为你处理。

使用道具 举报

回复
认证徽章
论坛徽章:
163
布鲁克
日期:2016-05-31 16:31:17弗兰奇
日期:2016-05-31 16:31:17妮可·罗宾
日期:2016-07-04 11:53:09托尼托尼·乔巴
日期:2016-05-31 16:31:17山治
日期:2016-05-31 16:31:17乌索普
日期:2016-05-31 16:31:17娜美
日期:2016-05-31 16:31:17罗罗诺亚·索隆
日期:2016-05-31 16:31:17蒙奇·D·路飞
日期:2016-05-31 16:31:17托尼托尼·乔巴
日期:2017-02-27 15:06:27
发表于 2017-6-29 10:16 | 显示全部楼层
截止到今日每日一题奖励已发,辛苦newkid大师
本期从5-28到6-14期
每10期题目发一次奖,10期内获奖最多的再奖励一本技术图书~原有的秀才系列徽章继续根据兑换规则兑换礼品~
大家多多努力哦~
本期获奖情况如下:(其中6-5期无人获奖)
Aquarius_Joe
Aquarius_Joe
wd10093588
solomon_007
wd10093588
solomon_007
wmxcn2000
dhhb
chengccy2010
恭喜Aquarius_Joe、wd10093588、solomon_007三位同学各获得一本技术图书,图书徽章已发,可以到书单换任意一本~
各位其他童鞋继续加油哦~

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则

TOP技术积分榜 社区积分榜 徽章 电子杂志 团队 统计 虎吧 老博客 知识索引树 读书频道 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档 | IT博客
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛 | SAP ERP系统
CopyRight 1999-2011 itpub.net All Right Reserved. 北京皓辰网域网络信息技术有限公司版权所有 联系我们 网站律师 隐私政策 知识产权声明
京ICP证:060528号 北京市公安局海淀分局网监中心备案编号:1101082001 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表