ORACLE11g试题答案(陈冬亮) 下载本文

内容发布更新时间 : 2024/5/9 5:28:43星期一 下面是文章的全部内容请认真阅读。

第十章 PL/SQL基础

一、单项选择题

1.PL/SQL最早出现的Oracle版本是( C )

A.Oracle 1 B.Oracle 7 C.Oracle 6 D.Oracle 9i 2.在PL/SQL中,下列( D )变量名合法。 A.1VAR B.?var_ab C.$ABC D.ROS$$_1 3.只能存储一个值的变量是( B )

A.游标 B.标量变量 C.游标变量 D.记录变量 4.PL/SQL语言的基本逻辑结构不包括( A )。

A.模块 B.顺序 C.选择 D.循环 5.在以下的表的显示结果中,以下语句的执行结果是 SQL> select * from usertable; USERID USERNAME

----------- ---------------- 1 user1 2 user2 3 user3 4 user4 5 user5

SQL> select * from usergrade; USERNAME GRADE ---------------- ----------

37

user9 90 user8 80 user7 80 user2 90 user1 100 user1 80 执行语句

语句一: Select count(*) from usertable t1 where username in (select username from usergrade t2 where rownum <=1);

语句二: Select count(*) from usertable t1 where exists (select 'x' from usergrade t2 where t1.username=t2.username and rownum <=1);

以上语句一的执行结果是: ( A ) , 以上语句二的执行结果是: ( C ) A. 0 B. 1 C.2 D. 3

6.下列哪个语句允许检查UPDATE语句所影响的行数?( B ) A.SQL%FOUND B.SQL%ROWCOUNT C.SQL%COUNT D.SQL%NOTFOUND 7.下列哪一项可以正确地引用记录变量的值?( B )

A.rec_abc(1) B.rec_abc(1).col C.rec_abc.col D.rec_abc.first(); 8.声明%TYPE类型的变量时,服务器将会做什么操作?( A ) A.为该变量检索数据库列的数据类型 B.复制一个变量

C.检索数据库中的数据 D.为该变量检索列的数据类型和值 9.如何终止LOOP循环,而不会出现死循环?( D ) A.在LOOP语句中的条件为FALSE时停止。 B.这种循环限定的次数,它会自动终止循环。 C.EXIT WHEN语句中的条件为TRUE D.EXIT WHEN语句中的条件为FALSE 10. 有一段PL/SQL程序如下所示: var1 := 10; LOOP

EXIT WHEN var1 > 12; var1 := var1 +1;

DBMS_OUTPUT.PUT_LINE(?A?); END LOOP;

输出为( C )。 A. A

B. A A C. A A D . A A

38

A

11.DBMS_LOB数据包提供的( D ),返回LOB值的长度。 A. LENGTH B.SUBSTR C.INSTR D.GETLENGTH

12.PL/SQL为内存耗尽时,预定义了( C )异常。 A.NO_DATA_FOUND B.MEMORY_ERROR C.STORAGE_ERROR D.NO_MEMEORY_FOUND

13.在PL/SQL中,在执行任何DML语句前,SQL%NOTFOUND的值为( C )。(选择一项) A. NOTFOUND B. TRUE C. NULL D. FALSE 二、填空题

1.PL/SQL程序块主要包含3个主要部分:声明部分、可执行部分和 异常处理 部分。 2.使用显式游标主要有4个步骤:声明游标、 打开游标 、检索数据、 关闭游标 。 3.你刚刚编译了一个PL/SQL Package但是有错误报道,使用 SHOW ERRORS 命令显示出错信息?

4.查看下面程序块,DBMS_OUTPUT将显示什么结果? N 。 DECLARE

var_a CHAR(1):=’N’; BEGIN DECLARE

var_a CHAR(2); BEGIN

Var_a:=’Y’; END;

DBMA_OUTPUT.put_line(var_a); END;

5.查看下面程序块,其中变量Var2的结果是 5 。 DECLARE

var1 number:=1000; Var2 number; BEGIN

IF var1>500 THEN Var2:=5;

ELSEIF var1>1000 THEN Var2:=10; ELSE

Var2:=15; END IF; END;

6.自定义异常必须使用 RAISE 语句引发。 三、问答题

39

1. PL/SQL提供了哪些循环结构?举例说明 解:

1))LOOP语句格式: LOOP

执行语句;

EXIT WHEN expression1; END LOOP; eg:

--从1加到100 declare

v_i number := 1; v_Sum number := 0; begin

loop

v_Sum := v_Sum + v_i; v_i := v_i + 1;

exit when v_i > 100; end loop;

DBMS_OUTPUT.PUT_LINE(v_Sum); end;

2))WHILE语句格式:

while (condition expression) loop 执行语句; end loop; eg:

--从1加到100 declare

v_i int := 1; v_sum int := 0; begin

while (v_i < 101) loop v_sum := v_sum + v_i; v_i := v_i + 1; end loop;

dbms_output.put_line(v_sum); exception

when others then

dbms_output.put_line('ERROR!');

40