Oracle数据库-作业2-答案.doc
文本预览下载声明
第二次书面作业答案
(作业在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.AFTE
显示全部