|
最先答对且答案未经编辑的puber将获得纪念章一枚(答案不可编辑但可发新贴补充或纠正),其他会员如果提供有价值的分析、讨论也可获得纪念章一枚。
每两周的优胜者可获得itpub奖励的技术图书一本。
以往旧题索引:
http://www.itpub.net/forum.php?m ... eid&typeid=1808
原始出处:
https://devgym.oracle.com/
作者:Steven Feuerstein
运行环境:SQLPLUS, SERVEROUTPUT已打开, 最低版本要求:11.2
注:本题给出答案时候要求给予简要说明才能得到奖品
啊,鲜花! 当然,这是在自然选择的进化中,人类受益的例子之一(美丽的颜色,可爱的香味),但这些好处的目的不是为了我们。
让我们创建和填充一个表来跟踪花的情况。还有一个包来处理这些数据。
CREATE TABLE qz_flowers (
id NUMBER,
species_name VARCHAR2 (100),
common_name VARCHAR2 (100)
)
/
BEGIN
INSERT INTO qz_flowers
VALUES (100, 'Ageratum', 'Flosslower');
INSERT INTO qz_flowers
VALUES (200, 'Allium', 'Flowering Onion');
INSERT INTO qz_flowers
VALUES (300, 'Nierembergia', 'Purple Robe');
INSERT INTO qz_flowers
VALUES (400, 'Rosaceae', 'Rose');
COMMIT;
END;
/
/* 如果查询返回2就对了 */
CREATE OR REPLACE PACKAGE qz_pkg
AUTHID DEFINER
IS
TYPE coll_t IS TABLE OF PLS_INTEGER
INDEX BY PLS_INTEGER;
PROCEDURE show_upper_count;
END;
/
CREATE OR REPLACE PACKAGE BODY qz_pkg
IS
PROCEDURE show_upper_count
IS
l_count INTEGER;
BEGIN
SELECT COUNT (*)
INTO l_count
FROM qz_flowers
WHERE species_name = UPPER (species_name);
DBMS_OUTPUT.put_line ('Upper-cased species names = ' || l_count);
END;
END;
/
哪些选项在执行之后, "Upper-cased species names = 2" 会被显示?
(A)
DECLARE
l_coll qz_pkg.coll_t;
BEGIN
l_coll (10001) := 200;
l_coll (10002) := 400;
FORALL indx IN l_coll.FIRST .. l_coll.LAST
UPDATE qz_flowers
SET species_name = UPPER (species_name)
WHERE id = l_coll (indx);
qz_pkg.show_upper_count;
ROLLBACK;
END;
/
(B)
DECLARE
l_coll qz_pkg.coll_t;
BEGIN
l_coll (200) := 200;
l_coll (400) := 400;
FORALL indx IN 1 .. l_coll.COUNT
UPDATE qz_flowers
SET species_name = UPPER (species_name)
WHERE id = l_coll (indx);
qz_pkg.show_upper_count;
ROLLBACK;
END;
/
(C)
DECLARE
l_coll qz_pkg.coll_t;
BEGIN
l_coll (2) := 200;
l_coll (4) := 400;
FORALL indx IN INDICES OF l_coll
UPDATE qz_flowers
SET species_name = UPPER (species_name)
WHERE id = l_coll (indx);
qz_pkg.show_upper_count;
ROLLBACK;
END;
/
(D)
DECLARE
l_coll qz_pkg.coll_t;
BEGIN
l_coll (200) := 2;
l_coll (400) := 4;
FORALL indx IN INDICES OF l_coll
UPDATE qz_flowers
SET species_name = UPPER (species_name)
WHERE id = l_coll (indx);
qz_pkg.show_upper_count;
ROLLBACK;
END;
/
(E)
DECLARE
l_coll qz_pkg.coll_t;
BEGIN
l_coll (2) := 200;
l_coll (4) := 400;
l_coll (200) := 2;
l_coll (400) := 4;
FORALL indx IN VALUES OF l_coll
UPDATE qz_flowers
SET species_name = UPPER (species_name)
WHERE id = l_coll (indx);
qz_pkg.show_upper_count;
ROLLBACK;
END;
/ |
|