Oracle PL/SQL测试题
姓名:___ _________ 一、选择题
1、Oracle数据库中为新创建的表分配的初始空间通常为多大(B) A、一个块 B、一个区 C、一个段
D、c一个表空间
2、记录树型结构表层级深度的伪列是( C ) A、rownum B、rowid C、level
D、row_number()
3、关于存储过程参数,正确的说法是(B)
A、存储过程的输出参数可以是标量类型,也可以是表类型 B、存储过程输入参数可以不输入信息而调用过程
C、可以指定字符参数的字符长度(函数的()或者过程的(number/varchar2)) D、以上说法都不对
4、下列说法,正确的说法是(B)
A、只要在存储过程中有增删改语句,一定加自治事务 B、在函数内可以修改表数据 C、函数不能递归调用 D、以上说法都不对
5、下列哪个语句无需COMMIT而自动提交( A ) A、CREATE TABLE t(t1 NUMBER,t2 NUMBER) B、UPDATE t SET t1=123 C、DELETE FROM t
D、INSERT INTO t VALUES(1,3)
6、关于自定义函数,正确的说法是( B ) A、函数只有两种类型的参数 B、在函数内可以修改表数据 C、函数不能递归调用 D、以上说法都不对
7、有一产品表(编号,名称,价格,数量,所属分类),下列语法不正确的是(D) A、select * from 产品表 where价格>1000
B、select sum(价格) from 产品表 group by 所属分类 having max(价格)>1000 C、select所属分类,sum(价格) from 产品表 where 价格>1000 group by 所属分类
D、select所属分类,sum(价格) from 产品表 where max(价格)>1000 group by 所属分类
8、关于触发器,下列说法正确的是(B) A、可以在表上创建INSTEAD OF 触发器
B、语句级触发器不能使用“:old”和“:new” C、行级触发器不能用于审计功能 D、触发器可以显式调用
9、下列那些是Oracle的伪列(ACD) A、ROWID
B、ROW_NUMBER() C、LEVEL D、ROWNUM E、COLUMN
10、当表的重复行数据很多时,应该创建的索引类型应该是( C ) A、B树 B、reverse C、bitmap D、函数索引
12、在建表时如果希望某列的值,在一定的范围内,应建什么样的约束?(C ) A、primary key B、unique C、check D、not null
13、利用游标来修改数据时,FOR UPDATE充分利用了事务的哪个特性?( D ) A、原子性 B、一致性 C、永久性 D、隔离性
14、下列说法不正确的是( D )
A、在PLSQL自定义函数中如果包含UPDATE、DELETE、INSERT语句,不必在函数体内给出COMMIT;
B、自定义函数可以在SQL语句中调用、也可以在PLSQL块中调用 C、自定义函数可以返回表类型
D、自定义函数中的参数可以是OUT类型
15、以下操作符中哪个常用做单行简单查询的操作符(A) A、= B、in C、like
D、between
16、Oracle数据库利用索引时,是基于下列哪个选项进行检索的?( A ) A、rownum B、rowcount C、rowid D、%rowtype
17、下列语句中,哪一个能返回联系方式为空的数据?( C ) A、SELECT *FROM emp WHERE contack=NULL B、SELECT *FROM emp WHERE contack<>NULL C、SELECT *FROM emp WHERE contack IS NULL
D、SELECT *FROM emp WHERE contack IS NOT NULL
18、下列哪类集合是稀疏的(A) A、index-by表 B、嵌套表 C、VARRAY表
D、都是连续的,没有稀疏的
PL/SQL中没有数组的概念,他的集合数据类型和数组是相似的。在7.3以前的版本中只有一种集合,称为PL/SQL表,在这之后又有两种集合数据类型:嵌套表和varray。其中varray集合中的元素是有数量限制的,index_by表和嵌套表是没有这个限制的。index-by表是稀疏的,也就是说下标可以不连续,varray类型的集合则是紧密的,他的下标没有间隔。index_by表不能存储在数据库中,但是嵌套表和varray可以被存储在数据库中。 集合在使用时必须先使用type进行定义方可使用
19、下列说法错误的有( ACD )
A. 在类方法中可用this来调用本类的类方法 B. 在类方法中调用本类的类方法时可直接调用 C. 在类方法中只能调用本类中的类方法 D. 在类方法中绝对不能调用实例方法
二、编程题
1、查找出当前用户模式下,每张表的记录数,以scott用户为例,结果应如下:
DEPT...................................4
EMP...................................14 BONUS.................................0 SALGRADE.............................5 其实现的代码是:
declare
type tab_names is table of varchar2(20) index by binary_integer; tab_name tab_names;
coun number;
str varchar2(100); begin
select table_name bulk collect into tab_name from user_tables; for i in tab_name.first..tab_name.last loop str:='select count(*) from '||tab_name(i); execute immediate str into coun;
dbms_output.put_line(tab_name(i)||'....................'||coun); end loop; end;
2、某cc表数据如下: c1 c2
-------------- 1 西 1 安 1 的 2 天 2 气 3 好 ?? 转换为 1 西安的 2 天气 3 好
要求:不能改变表结构及数据内容,仅在最后通过SELECT显示出这个查询结果
代码为:
create or replace function x return varchar2 is
type t_array is table of number index by binary_integer; type tarray is table of varchar2(10) index by binary_integer; ta t_array; tar tarray;
re varchar2(10); n number;
na varchar2(10); begin
select id bulk collect into ta from (select id,name from xx order by id) group by id; for i in ta.first..ta.last loop dbms_output.put(ta(i)||' ');
select name bulk collect into tar from xx where id=ta(i); for i in tar.first..tar.last loop dbms_output.put(tar(i)); end loop;
dbms_output.put_line(' '); end loop; return re; end;
2、请用一条sql语句查询出scott.emp表中每个部门工资前三位的数据,显示结果如下:
DEPTNO SAL1 SAL2 SAL3 ------ ---------- ---------- ------------------------------------- 10 5000 2450 1300 20 3000 2975 1100 30 2850 1600 1500 则,该语句为:
select deptno,max(sal) sal1,max(decode(t,2,sal)) sal2,min(sal ) sal3 from (select sal,deptno,t from
(select empno,ename,sal,row_number() over(partition by deptno order by sal desc) t,deptno from emp ) e where e.t<=3) group by deptno
3、表nba记录了nba(team VARCHAR2(10),y NUMBER(4))夺冠球队的名称及年份: TEAM Y
-------------------- ------------------------------ 活塞 1990 公牛 1991 公牛 1992 公牛 1993 火箭 1994 火箭 1995 公牛 1996 公牛 1997
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库Oracle_PLSQL测试题在线全文阅读。
相关推荐: