期
末
考
试
卷
(卷) 课 程 名
称
ORACLE
数 据 库
考 试 方
式开卷
闭卷
√
九江学院
郭
题
号
一 二 三 四 五 六
总
分
统
分
人
签
名
得
分
考生注意事项1、本试卷共 4 页请查看试卷中是否有缺页。
2、考
试 结
束后
考 生
不 得
将 试
卷、答
题 纸
带 出
考场。
1、以下 内存区不属于SGA。
APGA B日志缓冲区 C数据缓冲区 D共享池
2、 模式存储数据库中数据字典的表和视图。
ADBA BSCOTT CSYSTEM DSYS
3、在Oracle中创建用户时若未提及DEFAULT TABLESPACE关键字则Oracle就将
表空间分配给用户作为默认表空间。
AHR BSCOTT CSYSTEM DSYS
4、 服务监听并按受来自客户端应用程序的连接请求。
AOracleHOME_NAMETNSListener
BOracleServiceSID
COracleHOME_NAMEAgent
DOracleHOME_NAMEHTTPServer
5、 函数通常用来计算累计排名、移动平均数和报表聚合等。
A汇总 B分析 C分组 D单行
6、 SQL语句将为计算列SAL*12生成别名Annual Salary
ASELECT ename,sal*12 ?Annual Salary? FROM emp;
BSELECT ename,sal*12 “Annual Salary” FROM emp;
CSELECT ename,sal*12 AS Annual Salary FROM emp;
DSELECT ename,sal*12 AS INITCAP(“Annual Salary”) FROM emp;
7、锁用于提供( )。
A改进的性能
B数据的完整性和一致性
C可用性和易于维护
D用户安全
8、( )锁用于锁定表允许其他用户查询表中的行和锁定表但不允许插入、更新和删除
行。
A行共享 B行排他 C共享 D排他
9、带有( )子句的SELECT语句可以在表的一行或多行上放置排他锁。 AFOR INSERT BFOR UPDATE
CFOR DELETE DFOR REFRESH
10、使用( )命令可以在已分区表的第一个分区之前添加新分区。
A添加分区 B截断分区
C拆分分区 D不能在第一个分区前添加分区
11、( )分区允许用户明确地控制无序行到分区的映射。
A散列 B范围 C列表 D复合
12、可以使用 伪列来访问序列。
ACURRVAL和NEXTVAL BNEXTVAL和PREVAL
CCACHE和NOCACHE DMAXVALUE和MINVALUE
13、带有错误的视图可使用 选项来创建。
AFORCE
BWITH CHECK OPTION
CCREATE VIEW WITH ERROR
DCREATE ERROR VIEW
14、在联接视图中当 时该基表被称为键保留表。
A基表的主键不是结果集的主键
B基表的主键是结果集的主键
C基表的主键是结果集的外键
D基表的主键不是
结果集的外键
15、在列的取值重复率比较高的列上适合创建 索引。
A标准 B唯一 C分区 D位图
16、要以自身的模式创建私有同义词用户必须拥有 系统权限
ACREATE PRIVATE SYNONYM
BCREATE PUBLIC SYNONYM
CCREATE SYNONYM
DCREATE ANY SYNONYM
17、PL/SQL块中不能直接使用的SQL命令是 。
ASELECT BINSERT
CUPDATE DDROP
18、以零作除数时会引发 异常。
AVALUE_ERROR BZERO_DIVIDE
CSTORAGE_ERROR DSELF_IS_NULL
19、要更新游标结果集中的当前行应使用 子句。
AWHERE CURRENT OF BFOR UPDATE
CFOR DELETE DFOR MODIFY
20、用于处理得到单行查询结果的游标为 。
A循环游标 B隐式游标
CREF游标 D显式游标
21、公用的子程序和常量在 中声明。
A过程 B游标
C包规范 D包主体
22、数据字典视图 包含存储过程的代码文本
AUSER_OBJECTS BUSER_TEXT CUSER_SOURCE DUSER_DESC
23、以下不属于命名的PL/SQL块的是 。
A程序包 B过程
C游标 D函数
24、 包用于显示PL/SQL块和存储过程中的调试信息。
ADBMS_OUTPUT
BDBMS_STANDARD
CDBMS_INPUT
DDBMS_SESSION
25、Oracle的内置程序包由 用户所有。
ASYS BSYSTEM
CSCOTT DPUBLIC
26、 触发器允许触发操作中的语句访问行的列值。
A行级 B语句级
C模式 D数据库级
27、在非归档日志方式下操作的数据库禁用了 。
A归档日志
B联机日志
C日志写入程序
D日志文件
28、以下哪种备份方式需要在完全关闭数据库进行 。
A无归档日志模式下的数据库备份
B归档日志模式下的数据库备份
C使用导出实用程序进行逻辑备份
D以上都不对
29、 方式的导出会从指定的表中导出所有数据。
A分区 B表
C全部数据库 D表空间
30、 参数用于确定是否要导入整个导出文件。
ACONSTRAINTS BTABLES
CFULL DFILE
二、填空题每空2分共40分
1、假设已在某远程客户端完成网络服务名配置服务名为aptech请写出用户MARTIN用
户口令martinpass连接到服务器的命令
__________________________[1]__________________________________
2、SYS用户以管理员身份登录后要授予用户MARTIN可以对SCOTT用户的EMP表进
行查询的权限请写出授权命令假设MARTIN用户已存在
_________________________[2]___________________________________
3、 创建表emp
loyee的副本但不包含表中的记录
CREATE TABLE employee_copy AS____________[3]___________________
4、查询itemfile表中itemrate列的信息要求将数值转换为字符串并使用当前货币符号
作为前缀 SELECT ____[4]____(itemrate,'C99999') FROM itemfile
5、查itemfile表中itemdesc、re_level列的信息要求re_level为NULL时显示为0
SELECT itemdesc, __[5]__(re_level,0) FROM itemfile
6、完成以下PL/SQL块功能是显示2 到50的25个偶数。
BEGIN
FOR____[6]_____ IN ____[7]_____
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]______________________________________;
DBMS_OUTPUT.PUT_LINE(?职员姓名?||empname);
______[9]______
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]_______
LOOP
_______________[11]_____________
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]______________
IF sales_rec.tsales > sales_rec.asales THEN
DBMS_OUTPUT.PUT_LINE('产品'||sales_rec.pid||' 需提高销售额');
ELSE
IF _____________[13]______________ 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]_____ 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 dname INTO result FROM dept
WHERE deptno = dept_no;
________[16]__________;
EXCEPTION
WHEN OTHERS THEN
RETURN NULL;
END;
12、要执行pack_me包中的order_proc过程有一个输入参数假设参数值为?002?可
以输入以下命令 EXECUTE ___________[17]__________________
13、完成以下PL/SQL块的功能是创建一个触发器biu_job_emp无论用户插入记录
还是修改EMP表的job列都将用户指定的job列的值转换成大写。
CREATE OR REPLACE TRIGGER biu_job_emp
_________________[18]________________
____________[19]_______
BEGIN
:NEW.job :=______[20]_____;
END;
答案
1A 6B 11C 16C 21C 26A
2D 7B 12C 17D 22C 27A
3C 8C 13A 18B 23C 28A
4A 9B 14B 19A 24A 29B
5B 10C 15D 20B 25A 30C
二、填空题每空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] OPEN toy_cur
[11] FETCH toy_cur INTO my_toy_price;
[12] FOR sales_rec IN sales_cur LOOP
[13] sales_rec.tsales = sales_rec.asales
[14] IN OUT
[15] SELECT deptno INTO dept_no FROM emp WHERE empno=emp_no;
[16] RETURN result;
[17] pack_ma.order_proc(‘002’
[18] BEFORE INSERT OR UPDATE OF job ON emp [19] FOR EACH ROW
[20] UPPER(:NEW.job)