|
2011-11-15 答案BF.
要注意的是C, 尽管函数可以带输出参数,但是这种用法是毫无意义的,也会令人困惑。
===================================================
2011-11-16 %ROWTYPE的声明与使用
作者:Steven Feuerstein
难度:中
我连接到HR用户并运行了如下语句:
CREATE TABLE plch_parts
(
partnum NUMBER
, partname VARCHAR2 (50)
)
/
BEGIN
INSERT INTO plch_parts
VALUES (1, 'Chassis');
COMMIT;
END;
/
CREATE OR REPLACE PACKAGE plch_pkg
IS
TYPE parts_t IS TABLE OF plch_parts%ROWTYPE
INDEX BY PLS_INTEGER;
PROCEDURE plch_show_parts (parts_in IN parts_t);
END;
/
CREATE OR REPLACE PACKAGE BODY plch_pkg
IS
PROCEDURE plch_show_parts (parts_in IN parts_t)
IS
BEGIN
FOR indx IN 1 .. parts_in.COUNT
LOOP
DBMS_OUTPUT.put_line (parts_in (indx).partname);
END LOOP;
END;
END;
/
GRANT SELECT ON plch_parts TO scott
/
GRANT EXECUTE ON plch_pkg TO scott
/
然后我又用SCOTT用户连接并创建了这张表:
CREATE TABLE plch_parts
(
partnum NUMBER
, partname VARCHAR2 (50)
)
/
BEGIN
INSERT INTO plch_parts
VALUES (100, 'Wheel');
COMMIT;
END;
/
下列的哪些选项包含了下列语句块的一个声明部分,从而使得这个块执行之后"Wheel"会被显示出来?
BEGIN
SELECT *
BULK COLLECT INTO l_parts
FROM plch_parts;
hr.plch_pkg.plch_show_parts (l_parts);
END;
(A)
DECLARE
TYPE parts_t IS TABLE OF plch_parts%ROWTYPE
INDEX BY PLS_INTEGER;
l_parts parts_t;
(B)
DECLARE
TYPE parts_t IS TABLE OF hr.plch_parts%ROWTYPE
INDEX BY PLS_INTEGER;
l_parts parts_t;
(C)
DECLARE
l_parts hr.plch_pkg.parts_t;
(D)
DECLARE
SUBTYPE parts_t IS hr.plch_pkg.parts_t;
l_parts parts_t;
|
|