当前位置:文档之家› ORACLE数据库期末考试题目及答案

ORACLE数据库期末考试题目及答案

期末考试卷(卷)课程名称:数据库考试方式:开卷()闭卷(√)、本试卷共 4 页,请查看试卷中是否有缺页。

2、考试结束后,考生不得将试卷、答题纸带出考场。

1、以下(a )内存区不属于SGA。

A.PGAB.日志缓冲区C.数据缓冲区D.共享池2、d )模式存储数据库中数据字典的表和视图。

(A.DBAB.SCOTTC.SYSTEMD.SYS3、Oracle 中创建用户时,在若未提及DEFAULT TABLESPACE 关键字,Oracle 就将 c )则(表空间分配给用户作为默认表空间。

A.HRB.SCOTTC.SYSTEMD.SYS4、a )服务监听并按受来自客户端应用程序的连接请求。

(A.OracleHOME_NAMETNSListenerB.OracleServiceSIDC.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 REFRESH10、使用( c )命令可以在已分区表的第一个分区之前添加新分区。

A.添加分区B.截断分区C.拆分分区D.不能在第一个分区前添加分区11、( c )分区允许用户明确地控制无序行到分区的映射。

A.散列B.范围C.列表D.复合12、可以使用(a)伪列来访问序列。

A.CURRV AL 和NEXTV AL B.NEXTV AL 和PREV AL C.CACHE 和NOCACHE D.MAXV ALUE 和MINV ALUE13、带有错误的视图可使用(a)选项来创建。

A.FORCE B.WITH CHECK OPTION C.CREATE VIEW WITH ERROR D.CREATE ERROR VIEW14、在联接视图中,当(b )时,该基表被称为键保留表。

A.基表的主键不是结果集的主键B.基表的主键是结果集的主键C.基表的主键是结果集的外键D.基表的主键不是结果集的外键15、在列的取值重复率比较高的列上,适合创建(d)索引。

A.标准B.唯一C.分区D.位图16、要以自身的模式创建私有同义词,用户必须拥有(c )系统权限A.CREATE PRIV ATE SYNONYM B.CREATE PUBLIC SYNONYM C.CREATE SYNONYM D.CREATE ANY SYNONYM17、PL/SQL 块中不能直接使用的SQL 命令是(d )。

A.SELECT B.INSERT C.UPDATE D.DROP18、以零作除数时会引发(b )异常。

A.V ALUE_ERROR B.ZERO_DIVIDE C.STORAGE_ERROR D.SELF_IS_NULL19、要更新游标结果集中的当前行,应使用(a)子句。

A.WHERE CURRENT OF B.FOR UPDATE C.FOR DELETE D.FOR MODIFY20、用于处理得到单行查询结果的游标为(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_DESC23、以下不属于命名的PL/SQL 块的是(c )。

A.程序包B.过程C.游标D.函数24、 a )包用于显示PL/SQL 块和存储过程中的调试信息。

(A.DBMS_OUTPUT B.DBMS_STANDARD C.DBMS_INPUT D.DBMS_SESSION25、Oracle 的内置程序包由(a )用户所有。

A.SYS B.SYSTEM C.SCOTT D.PUBLIC26、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____________________________;2、SYS 用户以管理员身份登录后,要授予用户MARTIN 可以对SCOTT 用户的EMP 表进行查询的权限,请写出授权命令:(假设MARTIN 用户已存在)__Grant select on scott.emp to martin____________________________;3、创建表employee 的副本,但不包含表中的记录:CREATE TABLE employee_copy AS Select 1=2______________;*fromemployeewhere4、查询itemfile 表中itemrate 列的信息,要求将数值转换为字符串,并使用当前货币符号作为前缀:SELECT _To_char_(itemrate,'C99999') FROM itemfile;5、查itemfile 表中itemdesc、re_level 列的信息,要求re_level 为NULL 时显示为0 SELECT itemdesc, _NVL_(re_level,0) FROMitemfile;6、完成以下PL/SQL 块,功能是:显示 2 到50 的25 个偶数。

BEGIN FOR_even_number_ IN _1..25_ LOOP DBMS_OUTPUT.PUT_LINE(even_number*2);END LOOP END;7、完成以下PL/SQL 块,功能是:接受职员编号并检索职员姓名。

将职员姓名存储在变量empname 中,如果代码引发V ALUE_ERROR异常,则向用户显示错误消息。

DELCARE empname employee.ename%TYPE;;eno employee.empno%TYPE; BEGIN eno:=’&employee_number’; ___SELECT ename INTO empname FROM employee WHERE empno=eno;___; DBMS_OUTPUT.PUT_LINE(‘职员姓名:’||empname); _EXCEPTION WHEN V ALUE_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 OPEN toy_cur_ LOOP _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_c ur IS SELECT * FROM salesdetails; BEGIN _FOR sales_rec IN sales_cur LOOP_ IF sales_rec.tsales > sales_rec.asales THEN DBMS_OUTPUT.PUT_LINE('产品:'||sales_rec.pid||' 需提高销售额'); ELSE IF 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 _IN OUT_ NUMBER) IS v_temp NUMBER; BEGIN v_temp := p1; p1 := p2; p2 := v_temp; END; 11、完成以下PL/SQL 块,功能是:创建一个函数dept_name,其功能是接受职员编号后返回职员所在部门名称。

相关主题