(原发表于 2011-3-23)
最先答对且答案未经编辑的puber将获得纪念章一枚(答案不可编辑但可发新贴补充或纠正),其他会员如果提供有价值的分析、讨论也可获得纪念章一枚。
每两周的优胜者可获得itpub奖励的技术图书一本。
以往旧题索引:
http://www.itpub.net/forum.php?m ... eid&typeid=1808
原始出处:
http://www.plsqlchallenge.com/
作者:_Nikotin
运行环境:SQLPLUS, SERVEROUTPUT已打开
注:本题给出答案时候要求给予简要说明才能得到奖品
我创建了如下的表和数据,然后我执行了一个代码块。
CREATE TABLE plch_employees
(
employee_id INTEGER
, last_name VARCHAR2 (100)
, salaryNUMBER
)
/
BEGIN
INSERT INTO plch_employees
VALUES (12345678901234567890123456789012345678901, 'Jobs', 1000000);
INSERT INTO plch_employees
VALUES (12345678901234567890123456789012345678902, 'Ellison', 1000000);
INSERT INTO plch_employees
VALUES (12345678901234567890123456789012345678903, 'Gates', 1000000);
COMMIT;
END;
/
哪些选项显示了下列代码块执行之后屏幕上会看到什么?
DECLARE
l_employee_id plch_employees.employee_id%TYPE;
l_cnt PLS_INTEGER := -1;
l_errmsgVARCHAR2 (30);
BEGIN
BEGIN
SELECT employee_id, COUNT (*)
INTO l_employee_id, l_cnt
FROM plch_employees
GROUP BY employee_id;
l_errmsg := 'NO ERROR';
EXCEPTION
WHEN VALUE_ERROR
THEN
l_errmsg := 'VALUE_ERROR';
WHEN TOO_MANY_ROWS
THEN
l_errmsg := 'TOO_MANY_ROWS';
END;
DBMS_OUTPUT.put_line (l_cnt);
DBMS_OUTPUT.put_line (l_errmsg);
END;
/
(A)
-1
VALUE_ERROR
(B)
-1
TOO_MANY_ROWS
(C)
3
NO ERROR
(D)
1
NO ERROR
|