Oracle作业2-答案

更新时间:2023-09-29 09:17:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

第二次书面作业答案

(作业在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 D.SQL%NOTFOUND

C.SQL%COUNTD

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.NEXTVAL D.CURRVAL

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)函数定位行的位置。通过散列簇,可以将静态表的数据均匀地分布到数据块中。

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

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

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

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

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

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

本文来源:https://www.bwwdw.com/article/rgid.html

Top