oracle期末考试试题及答案
发布时间:2024-11-25
发布时间:2024-11-25
oracle基础期末考试试题
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、可以使用( a)伪列来访问序列。
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 )时,该基表被称为键保留表。
oracle基础期末考试试题
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 )。
oracle基础期末考试试题
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
1=2______________; AS Select * from employee where
4、查询itemfile表中itemrate列的信息,要求将数值转换为字符串,并使用当前货币符号作为前缀:
SELECT _To_char_(itemrate,'C99999') FROM itemfile;
5、查itemfile表中itemdesc、re_level列的信息,要求re_level为NULL时显示为0 SELECT itemdesc, _NVL_(re_level,0) FROM itemfile;
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中,如果代码引发VALUE_ERROR异常,则向用户显示错误消息。 DELCARE
empname employee.ename%TYPE;;
oracle基础期末考试试题
eno employee.empno%TYPE;
BEGIN
eno:= &employee_number ;
___SELECT ename INTO empname FROM employee WHERE empno=eno;___;
DBMS_OUTPUT.PUT_LINE( 职员姓名: ||empname);
_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
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_cur 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;
oracle基础期末考试试题
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,其功能是接受职员编号后返回职员所在部门名称。(注:部门名称在dept表中,而职员信息在emp表中,职员所在部门号的列名为deptno)
CREATE OR REPLACE FUNCTION dept_name (emp_no NUMBER)
RETURN VARCHAR2 AS
dept_no NUMBER(2);
result dept.dname%TYPE;
BEGIN
SELECT deptno INTO dept_no FROM emp WHERE empno=emp_no;
SELECT dname INTO result FROM dept
WHERE deptno = dept_no;
_RETURN result;_;
EXCEPTION
WHEN OTHERS THEN
RETURN NULL;
END;
12、要执行pack_me包中的order_proc过程(有一个输入参数),假设参数值为 002 ,可以输入以下命令:
EXECUTE _
pack_ma.order_proc(‘002’)
13、完成以下PL/SQL块的功能是:创建一个触发器biu_job_emp,无论用户插入记录,还是修改EMP表的job列,都将用户指定的job列的值转换成大写。
CREATE OR REPLACE TRIGGER biu_job_emp
_BEFORE INSERT OR UPDATE OF job ON emp_
_FOR EACH ROW_
BEGIN
:NEW.job :=_UPPER(:NEW.job)_;
END;