文档库

最新最全的文档下载
当前位置:文档库 > Oracle作业2-答案

Oracle作业2-答案

第二次书面作业答案

(作业在2013.5.15之前交,使用学院统一的作业封面,题目可以打印,答题内容必须手写)

一、填空题

1.PL/SQL程序块主要包括3个主要部分:声明部分、执行部分和异常处理部分。

2.使用显式游标主要包括4个步骤:声明游标、打开游标、提取数据、关闭游标。

3.在PL/SQL中,如果SELECT语句没有返回任何记录,则会引发NO_DATA_FOUND 异常。

4.查看操作在数据表中所影响的行数,可通过游标的%ROWCOUNT 属性实现。

5.在下面程序的空白处填写适当的代码,使该函数可以获取指定编号的员工薪金。

CREATE OR REPLACE FUNCTION get_sal(P_ID varchar2) return number is

v_sal number;

begin

select sal into v_sal from emp where empno= P_ID ;

returen v_sal;

exception

when no_data_found then

dbms_output.put_line('无法找到该编号的员工!');

when others then

dDms_output.put_line('发生其他错误!');

end get_sal;

6.ROWID实际上保存的是记录的物理地址,因此通过ROWID来访问记录可以获得最快的访问速度。

7.完成下面的语句,使其可以为EMPLOYEES表的EMPNO列添加一个名为PK_EMPNO的主键约束。

ALTER TABLE EMPLOYEES ADD CONSTRAINT PK_EMPNO

PRIMARY KEY EMPNO ;

8.B树索引可以是惟一的或者不惟一的,惟一的B树索引可以保证索引列上不会有重复的值。

9.Oracle数据库提供的对表或索引的分区方法有5种,分别为:范围分区、散列分区、列表分区、组合范围散列分区和组合范围列表分区。

10.簇是一种用于存储数据表中数据的方法。簇实际上是一组表,由一组共享相同数据块的多个表组成。

二、选择题

1.下列只能存储一个值的变量是哪种变量?( B )

A.游标B.标量变量C.游标变量D.记录变量

2.声明%TYPE类型的变量时,服务器将会做什么操作?( A)

A.为该变量检索数据表中列的数据类型B.复制一个变量

C.检索数据库中的数据D.为该变量检索列的数据类型和值3.下列哪个语句允许检查UPDATE语句所影响的行数?( B )

A.SQL%FOUND B.SQL%ROWCOUNT

C.SQL%COUNTD D.SQL%NOTFOUND

4.对于游标FOR循环,以下哪种说法是不正确的?( D)

A.循环隐含使用FETCH获取数据B.循环隐含使用OPEN打开记录集C.终止循环操作也就关闭了游标D.游标FOR循环不需要游标出现5.如果PL/SQL程序块的可执行部分引发了一个错误,则程序的执行顺序将发生什么变化?( A)

A.程序将转到EXCEPTION部分运行B.程序将中止运行

C.程序仍然正常运行D.以上都不对

6.下列哪个语句可以在SQL*Plus直接调用一个过程?( D)

A.RETURN B.CALL C.SET D.EXEC

7.下面哪个不是过程中参数的有效模式? ( C )

A.IN B.IN OUT C.OUT IN D.OUT

8.下列哪一个动作不会激发触发器? ( B)

A.更新数据B.查询数据C.删除数据D.插入数据9.在使用CREATE TRIGGER语句创建行级触发器时,哪一个语句用来引用旧数据? ( D)

A.FOR EACH B.ON C.REFERENCING D.OLD

10.在创建触发器时,哪一个语句决定触发器是针对每一行执行一次,还是针对每一个语句执行一次?( A)

A.FOR EACH B.ON C.REFERENCING D.NEW

11.如果希望执行某个操作时,该操作本身并不执行,而是去执行另外的一些操作,那么可以使用什么方式完成这种操作?( C)

A.BEFORE触发器B.AFTER触发器

C.INSTEAD OF触发器D.UNDO触发器

12.如果一个表中某条记录的一个字段暂时不具有任何值,那么在其中将保存什么内容? ( C )

A.空格字符B.数字0 C.NULL D.该字段数据类型的默认值13.如果为表EMPLOYEES添加一个字段EMAIL,并且规定每个雇员都必须具有唯一的EMAIL地址,则应当为EMAIL字段建立哪种约束?( B) A.PRIMARKY KEY B.UNIOUE C.CHECK D.NOT NULL 14.使用ALTER INDEX…REBUILD语句不可以执行下面哪个任务?( C) A.将反向键索引重建为普通索引B.将一个索引移动到另一个表空间C.将位图索引更改为普通索引D.将一个索引分区移动到另一个表空间15.假设在一个表的3个字段NAME、SEX和MONTH_OF_BIRTH中分别保存姓名、性别和出生月份的数据.则应当为这3个字段分别刨建阿种类型的索引?( C)

A.全部创建B树索引B.全部创建位图索引

C.分别创建B树索引、位图索引和位图索引

D.分别创建B树索引、位图索引和基于函数的索引

16.用户经常需要在。EMP表的SEX列上统计不同性别的员工信息,应该在SEX列上建立哪种类型的索引?( C )

A.B树索引B.反向索引C.位图索引D.函数索引17.假设要对商品信息表进行分区处理,并且根据商品产地进行分区,则应采用下列哪种分区方法?( C )

A.范围分区B.散列分区C.列表分区D.组合范围散列分区18.建立序列后,首次调用序列时应该使用哪个伪列?( C )

A.ROWID B.ROWNUM C.NEXTV AL D.CURRV AL

19.为了禁止在视图上执行DML操作,建立视图时应该提供哪个选项?( B ) A.WITH CHECK OPTION B.WITH READ ONLY

C.WITH READ OPTION D.READ ONLY

20.以下哪种分区方法适用于存放离散数据?( C)

A.范围分区B.散列分区C.列表分区D.索引分区

三、简答题

1、使用显式游标需要哪几个步骤?

答:使用显式游标需要以下四步:

1.定义游标:游标由游标名称和游标对应的SELECT结果集组成。

2.打开游标:要使用定义好的游标,用户还必须显式地打开游标。

3.提取游标数据:提取游标中的数据就是将检索到的结果集中的数据保存到变量中,以便在程序中进行处理。

4.关闭游标:使用完游标后,用户必须显式关闭游标,释放select语句的查询结果。

2、简述调用过程时传递参数值的3种方法。

答:1.IN参数:该类型的参数值由调用者传入,并且只能够被存储过程读取。2、OUT参数:OUT类型的参数由存储过程传入值,然后由用户接收参数值。3、IN OUT类型的参数同时具有IN 参数和OUT参数的特性,在调用过程时既可以向该类型的参数传入值,也可以从该参数接收值;而在过程的执行中既可以读取又写入该类型参数。

3、如何使用大对象数据类型?

答:在创建大对象表时,可以根据实际情况直接使用大对象类型定义某些列。大对象表定义完成之后,应该使用初始化函数初始化大对象列。对于CLOB或NCLOB列.可以使用EMPTY_CLOB()函数进行初始化。对于BLOB列,应该使用EMPTY_BLOB()函数进行初始化;可以在INSERT语句中使用这些初始化函数.初始化完成后.可以使用UPDATE语句向大对象列加入数据。

4、简述B树索引的组织结构。

答:B树索引是以B树结构组织并存放索引数据的。默认情况下,B树索引中的数据是以升序方式排列的。B树索引由根块、分支枝和叶块3部分组成,其中主要数据都集中在叶子结点。

5、简述什么是簇,以及什么是散列簇。

答:簇是一种用于存储数据表中数据的方法。簇实际上是一组表,由一组共享相同数据块的多个表组成。散列簇是指使用散列(HASH)函数定位行的位置。通过散列簇,可以将静态表的数据均匀地分布到数据块中。