楼主: newkid

[每日一题] PL/SQL CHALLENGE 每日一题

[复制链接]
论坛徽章:
548
生肖徽章2007版:猴
日期:2008-05-16 11:28:59生肖徽章2007版:马
日期:2008-10-08 17:01:01SQL大赛参与纪念
日期:2011-04-13 12:08:17授权会员
日期:2011-06-17 16:14:53ITPUB元老
日期:2011-06-21 11:47:01ITPUB官方微博粉丝徽章
日期:2011-07-01 09:45:27ITPUB十周年纪念徽章
日期:2011-09-27 16:30:472012新春纪念徽章
日期:2012-01-04 11:51:222012新春纪念徽章
日期:2020-11-30 22:13:24海蓝宝石
日期:2012-02-20 19:24:27
151#
发表于 2011-11-18 12:48 | 只看该作者
ABCD

使用道具 举报

回复
论坛徽章:
13
2010广州亚运会纪念徽章:轮滑
日期:2010-09-03 12:44:53马上有房
日期:2014-04-04 13:51:34马上加薪
日期:2014-04-04 13:35:40优秀写手
日期:2014-03-14 06:00:13夏利
日期:2013-08-05 18:32:18复活蛋
日期:2013-06-25 17:22:592013年新春福章
日期:2013-02-25 14:51:24蛋疼蛋
日期:2013-01-08 18:08:502011新春纪念徽章
日期:2011-02-18 11:43:33生肖徽章2007版:兔
日期:2011-01-20 12:58:49
152#
发表于 2011-11-18 13:54 | 只看该作者
ab

使用道具 举报

回复
论坛徽章:
3
2012新春纪念徽章
日期:2012-01-04 11:58:44咸鸭蛋
日期:2012-04-20 11:44:022013年新春福章
日期:2013-02-25 14:51:24
153#
发表于 2011-11-18 23:06 | 只看该作者
newkid 发表于 2011-10-11 23:57
2011-10-10
作者:Steven Feuerstein
难度:中

选A,B,C,D,
TYPE number_table IS TABLE OF NUMBER INDEX BY BINARY_INTEGER;
题目中都是PLS_INTEGER,所以EXISTS(****)返回的都是FALSE

使用道具 举报

回复
论坛徽章:
3
2012新春纪念徽章
日期:2012-01-04 11:58:44咸鸭蛋
日期:2012-04-20 11:44:022013年新春福章
日期:2013-02-25 14:51:24
154#
发表于 2011-11-18 23:08 | 只看该作者
newkid 发表于 2011-11-4 21:41
2011-11-2 答案D.
A: 在SQL中调用的函数不能有DML, 除非是自治事务;
B: 虽然用了自治事务,但是在返回之 ...

选E,使用语句级触发器

使用道具 举报

回复
论坛徽章:
3
2012新春纪念徽章
日期:2012-01-04 11:58:44咸鸭蛋
日期:2012-04-20 11:44:022013年新春福章
日期:2013-02-25 14:51:24
155#
发表于 2011-11-18 23:24 | 只看该作者
newkid 发表于 2011-11-16 23:16
2011-11-14 答案 E.
为什么有人选A? PACKAGE还能带参数?
===========================================
...

为什么不可以选择A,过程中不可以有RETURN啊。

使用道具 举报

回复
论坛徽章:
3
2012新春纪念徽章
日期:2012-01-04 11:58:44咸鸭蛋
日期:2012-04-20 11:44:022013年新春福章
日期:2013-02-25 14:51:24
156#
发表于 2011-11-18 23:25 | 只看该作者
newkid 发表于 2011-11-16 23:16
2011-11-14 答案 E.
为什么有人选A? PACKAGE还能带参数?
===========================================
...

函数中可以调用存储过程吗?谁可以举个例子?

使用道具 举报

回复
论坛徽章:
520
奥运会纪念徽章:垒球
日期:2008-09-15 01:28:12生肖徽章2007版:鸡
日期:2008-11-17 23:40:58生肖徽章2007版:马
日期:2008-11-18 05:09:48数据库板块每日发贴之星
日期:2008-11-29 01:01:02数据库板块每日发贴之星
日期:2008-12-05 01:01:03生肖徽章2007版:虎
日期:2008-12-10 07:47:462009新春纪念徽章
日期:2009-01-04 14:52:28数据库板块每日发贴之星
日期:2009-02-08 01:01:03生肖徽章2007版:蛇
日期:2009-03-09 22:18:532009日食纪念
日期:2009-07-22 09:30:00
157#
 楼主| 发表于 2011-11-19 02:51 | 只看该作者
2011-11-16 答案CD.
%ROWTYPE是一种记录,如果你定义两个结构一模一样的记录类型,它们仍然不能够互换,会报类型不匹配的错误。
====================
2011-11-17 AUTHID(定义者权限与使用者权限)
作者:Steven Feuerstein
难度:高


我在HR模式下运行了下列语句(没有发生错误):
CREATE TABLE plch_parts
(
   partnum    NUMBER
, partname   VARCHAR2 (50)
)
/

BEGIN
   INSERT INTO plch_parts
        VALUES (123, 'Steering Wheel');

   INSERT INTO plch_parts
        VALUES (456, 'Brake Pedal');

   COMMIT;
END;
/

CREATE OR REPLACE TYPE plch_numbers_t IS TABLE OF NUMBER
/

CREATE OR REPLACE FUNCTION plch_func
   RETURN plch_numbers_t
   AUTHID CURRENT_USER
IS
   l_numbers   plch_numbers_t;
BEGIN
   SELECT partnum
     BULK COLLECT INTO l_numbers
     FROM plch_parts;

   RETURN l_numbers;
END;
/

CREATE OR REPLACE VIEW plch_func_v
AS
   SELECT COLUMN_VALUE partnum FROM TABLE (plch_func ())
/

GRANT SELECT ON plch_func_v TO scott
/

GRANT EXECUTE ON plch_func TO scott
/


然后我又连接到SCOTT模式并执行如下语句:
CREATE TABLE plch_parts
(
   partnum    NUMBER
, partname   VARCHAR2 (50)
)
/

BEGIN
   INSERT INTO plch_parts
        VALUES (100, 'Tire');

   INSERT INTO plch_parts
        VALUES (101, 'Battery');

   COMMIT;
END;
/


哪些选项显示了下列语句块执行后屏幕上的输出结果?
BEGIN
   DBMS_OUTPUT.put_line ('Two Cursor For Loops....');

   FOR rec IN (  SELECT p.partname
                   FROM TABLE (hr.plch_func) v, plch_parts p
                  WHERE v.column_value = p.partnum
               ORDER BY p.partnum)
   LOOP
      DBMS_OUTPUT.put_line (rec.partname);
   END LOOP;

   FOR rec IN (  SELECT p.partname
                   FROM hr.plch_func_v v, plch_parts p
                  WHERE v.partnum = p.partnum
               ORDER BY p.partnum)
   LOOP
      DBMS_OUTPUT.put_line (rec.partname);
   END LOOP;
END;
/

(A)
Two Cursor For Loops....
Steering Wheel
Brake Pedal
   
(B)
An unhandled exception:
PLS-00158: AUTHID CURRENT_USER subprograms not allowed in views
   
(C)
Two Cursor For Loops....
Tire
Battery
   
(D)
Two Cursor For Loops....
Tire
Battery
Steering Wheel
Brake Pedal

(E)
Two Cursor For Loops....
Tire
Battery
Tire
Battery

使用道具 举报

回复
论坛徽章:
520
奥运会纪念徽章:垒球
日期:2008-09-15 01:28:12生肖徽章2007版:鸡
日期:2008-11-17 23:40:58生肖徽章2007版:马
日期:2008-11-18 05:09:48数据库板块每日发贴之星
日期:2008-11-29 01:01:02数据库板块每日发贴之星
日期:2008-12-05 01:01:03生肖徽章2007版:虎
日期:2008-12-10 07:47:462009新春纪念徽章
日期:2009-01-04 14:52:28数据库板块每日发贴之星
日期:2009-02-08 01:01:03生肖徽章2007版:蛇
日期:2009-03-09 22:18:532009日食纪念
日期:2009-07-22 09:30:00
158#
 楼主| 发表于 2011-11-19 03:09 | 只看该作者
to: owen00sun
你看错楼层了,分隔线上面的是上一日的答案和点评,当日的答案要往下面的楼层去找。

使用道具 举报

回复
论坛徽章:
27
ITPUB官方微博粉丝徽章
日期:2011-08-17 10:35:36托尼托尼·乔巴
日期:2017-10-25 16:45:57秀才
日期:2017-04-05 13:18:06秀才
日期:2017-03-02 10:35:322016猴年福章
日期:2016-02-23 09:58:342016猴年福章
日期:2016-02-18 09:31:302015年新春福章
日期:2015-03-06 11:57:312014年新春福章
日期:2014-02-18 16:42:022013年新春福章
日期:2013-02-25 14:51:24ITPUB 11周年纪念徽章
日期:2012-10-09 18:07:31
159#
发表于 2011-11-19 09:16 | 只看该作者
E
猜的。。

使用道具 举报

回复
论坛徽章:
13
2010广州亚运会纪念徽章:轮滑
日期:2010-09-03 12:44:53马上有房
日期:2014-04-04 13:51:34马上加薪
日期:2014-04-04 13:35:40优秀写手
日期:2014-03-14 06:00:13夏利
日期:2013-08-05 18:32:18复活蛋
日期:2013-06-25 17:22:592013年新春福章
日期:2013-02-25 14:51:24蛋疼蛋
日期:2013-01-08 18:08:502011新春纪念徽章
日期:2011-02-18 11:43:33生肖徽章2007版:兔
日期:2011-01-20 12:58:49
160#
发表于 2011-11-20 13:14 | 只看该作者
d

使用道具 举报

回复

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

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 未成年人举报专区 
京ICP备16024965号-8  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表