好文档 - 专业文书写作范文服务资料分享网站

oracle数据库期末考试试题及答案Word文档

天下 分享 时间: 加入收藏 我要投稿 点赞

期 末 考 试 卷(卷) 课程名称: ORACLE数据库 考试方式:开卷( )闭卷(√) 九江学院 (郭) 2、考题总试结一 二 三 四 五 六 号 分 束后,考生不得得将试 卷、答分 考生注意事项:1、本试卷共 4 页,请查看试卷中是否有缺页。 题纸带出考场。 统分人签名 1、以下(A )内存区不属于SGA。

A.PGA B.日志缓冲区 C.数据缓冲区 D.共享池 2、( D )模式存储数据库中数据字典的表和视图。 A.DBA B.SCOTT C.SYSTEM D.SYS 3、在Oracle中创建用户时,若未提及DEFAULT TABLESPACE关键字,则Oracle就将( C )表空间分配给用户作为默认表空间。

A.HR B.SCOTT C.SYSTEM D.SYS 4、(A )服务监听并按受来自客户端应用程序的连接请求。 A.OracleHOME_NAMETNSListener B.OracleServiceSID C.OracleHOME_NAMEAgent

D.OracleHOME_NAMEHTTPServer 5、( B )函数通常用来计算累计排名、移动平均数和报表聚合等。 A.汇总 B.分析 C.分组 D.单行 6、( B )SQL语句将为计算列SAL*12生成别名Annual Salary A.SELECT ename,sal*12 ‘Annual Salary’ FROM emp; B.SELECT ename,sal*12 “Annual Salary” FROM emp; C.SELECT ename,sal*12 AS Annual Salary FROM emp;

D.SELECT ename,sal*12 AS INITCAP(“Annual Salary”) FROM emp; 7、锁用于提供( B )。

A.改进的性能 B.数据的完整性和一致性 C.可用性和易于维护 D.用户安全

8、( C)锁用于锁定表,允许其他用户查询表中的行和锁定表,但不允许插入、更新和删除行。

A.行共享 B.行排他 C.共享 D.排他

9、带有( B )子句的SELECT语句可以在表的一行或多行上放置排他锁。

A.FOR INSERT B.FOR UPDATE C.FOR DELETE D.FOR REFRESH

10、使用( C )命令可以在已分区表的第一个分区之前添加新分区。 A.添加分区 B.截断分区

C.拆分分区 D.不能在第一个分区前添加分区 11、( C )分区允许用户明确地控制无序行到分区的映射。 A.散列 B.范围 C.列表 D.复合 12、可以使用(C )伪列来访问序列。

A.CURRVAL和NEXTVAL B.NEXTVAL和PREVAL C.CACHE和NOCACHE D.MAXVALUE和MINVALUE 13、带有错误的视图可使用(A )选项来创建。 A.FORCE

B.WITH CHECK OPTION

C.CREATE VIEW WITH ERROR D.CREATE ERROR VIEW

14、在联接视图中,当( B )时,该基表被称为键保留表。 A.基表的主键不是结果集的主键 B.基表的主键是结果集的主键 C.基表的主键是结果集的外键 D.基表的主键不是结果集的外键

15、在列的取值重复率比较高的列上,适合创建( D )索引。 A.标准 B.唯一 C.分区 D.位图

16、要以自身的模式创建私有同义词,用户必须拥有( C )系统权限 A.CREATE PRIVATE SYNONYM B.CREATE PUBLIC SYNONYM C.CREATE SYNONYM D.CREATE ANY SYNONYM

17、PL/SQL块中不能直接使用的SQL命令是( D)。 A.SELECT B.INSERT C.UPDATE D.DROP

18、以零作除数时会引发( B)异常。 A.VALUE_ERROR B.ZERO_DIVIDE C.STORAGE_ERROR D.SELF_IS_NULL

19、要更新游标结果集中的当前行,应使用( A )子句。 A.WHERE CURRENT OF B.FOR UPDATE C.FOR DELETE D.FOR MODIFY 20、用于处理得到单行查询结果的游标为( B )。 A.循环游标 B.隐式游标 C.REF游标 D.显式游标

21、公用的子程序和常量在(C )中声明。 A.过程 B.游标 C.包规范 D.包主体

22、数据字典视图( C )包含存储过程的代码文本 A.USER_OBJECTS B.USER_TEXT

C.USER_SOURCE D.USER_DESC

23、以下不属于命名的PL/SQL块的是(C )。 A.程序包 B.过程 C.游标 D.函数 24、( A )包用于显示PL/SQL块和存储过程中的调试信息。 A.DBMS_OUTPUT B.DBMS_STANDARD C.DBMS_INPUT D.DBMS_SESSION

25、Oracle的内置程序包由(A )用户所有。 A.SYS B.SYSTEM C.SCOTT D.PUBLIC 26、( A)触发器允许触发操作中的语句访问行的列值。 A.行级 B.语句级 C.模式 D.数据库级

27、在非归档日志方式下操作的数据库禁用了( A)。 A.归档日志 B.联机日志 C.日志写入程序 D.日志文件

28、以下哪种备份方式需要在完全关闭数据库进行( A )。 A.无归档日志模式下的数据库备份 B.归档日志模式下的数据库备份 C.使用导出实用程序进行逻辑备份 D.以上都不对 29、( B )方式的导出会从指定的表中导出所有数据。 A.分区 B.表 C.全部数据库 D.表空间 30、( C)参数用于确定是否要导入整个导出文件。 A.CONSTRAINTS B.TABLES C.FULL D.FILE 二、填空题(每空2分,共40分)

1、假设已在某远程客户端完成网络服务名配置,服务名为aptech,请写出用户MARTIN(用户口令martinpass)连接到服务器的命令:

Connect

martin/martinpass@aptech________[1]__________________________________;

2、SYS用户以管理员身份登录后,要授予用户MARTIN可以对SCOTT用户的EMP表进行查询的权限,请写出授权命令:(假设MARTIN用户已存在) ___________________Grant select on scott.emp to martin______[2]___________________________________; 3创建表employee的副本,但不包含表中的记录:

CREATE TABLE employee_copy AS______Select * from employee where 1=2______[3]___________________;

4、查询itemfile表中itemrate列的信息,要求将数值转换为字符串,并使用当前货币符号作为前缀:

SELECT ____[4]_To_char___(itemrate,'C99999') FROM itemfile; 5、查itemfile表中itemdesc、re_level列的信息,要求re_level为NULL时显示为0 SELECT itemdesc, __[5]NVL__(re_level,0) FROM itemfile; 6、完成以下PL/SQL块,功能是:显示2 到50的25个偶数。 BEGIN

FOR____[6]_even_number____ IN ____[7]___1..25__ LOOP

DBMS_OUTPUT.PUT_LINE(even_number*2); END LOOP END;

7、 完成以下PL/SQL块,功能是:接受职员编号并检索职员姓名。将职员姓名存储在变量

empname中,如果代码引发VALUE_ERROR异常,则向用户显示错误消息。 DELCARE

empname employee.ename%TYPE;; eno employee.empno%TYPE; BEGIN

eno:=’&employee_number’;

___________________[8]_________ SELECT ename INTO empname FROM employee WHERE empno=eno; _____________________________;

DBMS_OUTPUT.PUT_LINE(‘职员姓名:’||empname); ______[9]___EXCEPTION___ WHEN VALUE_ERROR THEN

DBMS_OUTPUT.PUT_LINE(‘要存储在变量中的值过大’) END;

8、完成以下PL/SQL块,功能是:使用游标,显示所有单价低于250元的玩具的单价。

DECLARE

my_toy_price toys.toyprice%TYPE; CURSOR toy_cur IS

SELECT toyprice FROM toys WHERE toyprice<250; BEGIN

________[10]__OPEN toy_cur_____ LOOP

_______________[11]_____FETCH toy_cur INTO my_toy_price;________ EXIT WHEN toy_cur%NOTFOUND;

DBMS_OUTPUT.PUT_LINE (toy_cur%ROWCOUNT || '. 玩具单价:' || my_toy_price); END LOOP;

CLOSE toy_cur; END;

9、完成以下PL/SQL块,功能是:使用游标显示销售报表。如果目标销售额(tsales)大于实际销售额(asales),则显示消息“需提高销售额”。如果tsales等于asales,则显示消息“已达到销售额”,否则显示消息“销售业绩出色” DECLARE

CURSOR sales_cur IS SELECT * FROM salesdetails; BEGIN

_____________________[12]___FOR sales_rec IN sales_cur LOOP___________ IF sales_rec.tsales > sales_rec.asales THEN

DBMS_OUTPUT.PUT_LINE('产品:'||sales_rec.pid||' 需提高销售额'); ELSE

IF _____________[13]_____sales_rec.tsales = sales_rec.asales_________ THEN DBMS_OUTPUT.PUT_LINE('产品:'||sales_rec.pid||'已达到销售额'); ELSE DBMS_OUTPUT.PUT_LINE('产品:' ||sales_rec.pid||'销售业绩出色'); END IF; END IF; END LOOP; END; 10、完成以下PL/SQL块,功能是:创建一个交换两数的过程。 CREATE OR REPLACE PROCEDURE

swap(p1 IN OUT NUMBER, p2 ____[14]__IN OUT___ NUMBER) IS v_temp NUMBER; BEGIN

v_temp := p1; p1 := p2; p2 := v_temp; END;

11、完成以下PL/SQL块,功能是:创建一个函数dept_name,其功能是接受职员编号后返回职员所在部门名称。(注:部门名称在dept表中,而职员信息在emp表中,职员所在部门号的列名为deptno)

CREATE OR REPLACE FUNCTION dept_name (emp_no NUMBER) RETURN VARCHAR2 AS dept_no NUMBER(2);

result dept.dname%TYPE; BEGIN

___________________[15]___________SELECT deptno INTO dept_no FROM emp WHERE empno=emp_no

________________________

SELECT dname INTO result FROM dept WHERE deptno = dept_no;

________[16]______RETURN result;____; EXCEPTION

WHEN OTHERS THEN RETURN NULL; END;

12、要执行pack_me包中的order_proc过程(有一个输入参数),假设参数值为’002’,可以输入以下命令:

EXECUTE ___________[17]________pack_ma.order_proc(‘002’)__________ 13、完成以下PL/SQL块的功能是:创建一个触发器biu_job_emp,无论用户插入记录,还是修改EMP表的job列,都将用户指定的job列的值转换成大写。 CREATE OR REPLACE TRIGGER biu_job_emp

_________________[18]_________BEFORE INSERT OR UPDATE OF job ON emp_______ ____________[19]____FOR EACH ROW___ BEGIN

:NEW.job :=______[20]_UPPER(:NEW.job)____; END; 答案 1.A 2.D 3.C 4.A 5.B 6.B 7.B 8.C 9.B 10.C 11.C 12.C 13.A 14.B 15.D 16.C 17.D 18.B 19.A 20.B 21.C 22.C 23.C 24.A 25.A 26.A 27.A 28.A 29.B 30.C 二、填空题(每空2分,共40分) [1] Connect martin/martinpass@aptech [2] Grant select on scott.emp to martin [3] Select * from employee where 1=2 [4] To_char [5] NVL [6] even_number [7] 1..25 [8] SELECT ename INTO empname FROM employee WHERE empno=eno; [9] EXCEPTION [10] [11] [12OPEN toy_cur FETCH toy_cur INTO my_toy_price; FOR sales_rec IN sales_cur LOOP

]

[13] [14] [15] [16] [17] [18] [19] [20] sales_rec.tsales = sales_rec.asales IN OUT SELECT deptno INTO dept_no FROM emp WHERE empno=emp_no; RETURN result; pack_ma.order_proc(‘002’) BEFORE INSERT OR UPDATE OF job ON emp FOR EACH ROW UPPER(:NEW.job)

(注:素材和资料部分来自网络,供参考。请预览后才下载,期待你的好评与关注!)

5xyxj77lbz9epjx24qwd4i6jo0x1tb012am
领取福利

微信扫码领取福利

微信扫码分享