12015年Oracle考试题一、选择题:1、下列各选项中,关于序列描述哪一项不正确(D)。A.序列是Oracle提供的用于产生一系列唯一数字的数据库对象.B.序列并不占用实际的存储空间.C.使用序列时,需要用到序列的两个伪列NEXTVAL与CURRVAL。其中,NEXTVAL将返回序列生成的下一个值,而CURRVAL返回序列的当前值.D.在任何时候都可以使用序列的伪列CURRVAL,以返回当前序列值.2、在oracle中,用来判断列值是否为空的操作符是(D)。A.==NULLB.NULLISC.ASNULLD.ISNULL3、下列选项中,哪一部分不是oracle实例的组成部分(C)。A.系统全局区SGAB.PMON后台进程C.控制文件D.Dnnn调度进程4、使用传统导出工具EXP导出SCOTT用户的所有对象时,应该选择BA.TABLESB.SCHEMASC.OWNERD.FULL=Y5、在oracle中,一个用户拥有的所有数据库对象统称为(B)A.数据库B.模式C.表空间D.实例6、在Oracle中,使用HAVING子句也可以进行条件查询,以下选项说法是正确的是___C___.A.HAVING子句和WHERE子句相同B.HAVING子句用于行的条件查询C.HAVING子句用于已分组结果的条件查询D.以上皆非8、函数头部中的RETURN语句的作用是什么?AA.声明返回的数据类型B.声明返回值的大小和数据类型C.调用函数D.函数头部不能使用RETURN语句9、有字符串数据”test”分别存放到char(10)和varchar2(10)类型的字段中,其实际存储长度为(A)A.104B.44C.1010D.41010、下列哪个动作不会激发一个触发器?__B____A.更新数据B.查询数据C.删除数据D.插入数据11、对于下面的函数,哪个语句将成功地调用?(A)CREATEORREPLACEFUNCTIONCalc_Sum(Addend_Xnumber,Addend_Ynumber)2ReturnnumberAsSumnumber;BEGINSum:=Addend_X+Addend_Y;ReturnSum;END;A.Sum:=Calc_Sum(23,12)B.EXECUTECalc_Sum(45)C.EXECUTECalc_Sum(23,12)D.Calc_Sum12、DELETEFROMSWHERE年龄60语句的功能是(B)。A.从S表中彻底删除年龄大于60岁的记录B.S表中年龄大于60岁的记录被加上删除标记C.删除S表D.删除S表的年龄列13、groupby子句作用是什么?(A)A.查询结果的分组条件B.组的筛选条件C.限定返回行的判定条件D.对结果进行排序14、查看下面的语句创建了哪一种索引(c)?Createindextest_indexOnstudent(stuno,sname)TablespaceusersA、全局分区索引B、位图索引C、复合索引D、基于函数的索引15、下列哪个语句会终止事务(ENDTRANSACTION)。二、填空题:1、(表空间)是oracle中可以使用的最大的逻辑存储结构,(块)是oracle逻辑存储结构中最小的I/O单元。2、PL/SQL程序块主要包含3个主要部分:声明部分、可执行部分和(异常处理部分)。3、查看操作在数据表中所影响的行数,可通过游标的(%ROWCOUNT)属性实现。4、(角色)是具有名称的一组相关权限的组合。5、oracle数据库系统的物理存储结构主要由3类文件组成,分别为数据文件、(日志文件)和(控制文件)。、6、在SQL*PLUS命令行下,查看bmp表的结构应使用()命令。7、自定义异常必须使用(RAISE)语句显示触发。38、在oracle10g版本以前,对撤销信息的管理采用(回滚段),自oracle10g后采用(自动UNDO管理)方式管理撤销信息。9、在oracle数据库中的权限可以分为两类,(系统权限)是指在系统级控制数据库的存取和使用的机制,(对象权限)是指在对象级控制数据库的存取和使用的机制。10、在oracle中,创建公共同义词的SQL命令为(Create[public]synonym同义词名称for[username.]objectName;)。三、简答题:1、简述表空间与数据文件的关系。答:每一个数据文件都必须隶属于某个表空间,但一个表空间可以由多个数据文件组合而成。tablespace是逻辑上的概念,datafile则在物理上储存了数据库的种种对象。2、简述替代触发器的作用。Insteadof触发器也称替代触发器,定义insteadof触发器后,用户对表的DML操作将不再被执行,而是执行触发器主体中的操作。Insteadof触发器是定义在视图上的,而不是在表上,它是用来替换所使用实际语句的触发器。因为一个视图通常由多个基本表连接而成,这种视图不允许进行instead、update和delete这样的DML操作。当为视图编写insteadof触发器后,用户对视图的DML操作就不会被执行,而是执行触发器中的PL/SQL语句块,这样就可以通过在insteadof触发器中编写适当的代码对构成视图的各个表进行操作。3、简述调用过程时传递参数值得三种方式。答:IN参数,由调用者传入,并且只能够被存储过程读取,它可以接收一个值,但是不能在过程中修改这个值;OUT参数,由存储过程传入值,然后由用户接收参数值,它在调用过程时为空,在过程的执行中将为这参数指定一个值,并在执行结束后返回;INOUT参数,同时具有IN和OUT参数的特性。四、程序题:1、完成以下PL/SQL块,功能是:使用游标显示销售报表。如果目标销售额(tsales)大于实际销售额(asales),则显示消息“需提高销售额”。如果tsales等于asales,则显示消息“已达到销售额”,否则显示消息“销售业绩出色”DECLARECURSORsales_curISSELECT*FROMsalesdetails;BEGIN_____FORsales_recINsales_curLOOP______4IFsales_rec.tsalessales_rec.asalesTHENDBMS_OUTPUT.PUT_LINE('产品:'||sales_rec.pid||'需提高销售额');ELSEIF____sales_rec.tsales=sales_rec.asales_____THENDBMS_OUTPUT.PUT_LINE('产品:'||sales_rec.pid||'已达到销售额');ELSEDBMS_OUTPUT.PUT_LINE('产品:'||sales_rec.pid||'销售业绩出色');ENDIF;ENDIF;ENDLOOP;END;完成以下PL/SQL块,功能是:接受职员编号并检索职员姓名。将职员姓名存储在变量empname中,如果代码引发VALUE_ERROR异常,则向用户显示错误消息。DELCAREempnameemployee.ename%TYPE;;enoemployee.empno%TYPE;BEGINeno:=’&employee_number’;___SELECTenameINTOempnameFROMemployeeWHEREempno=eno;____DBMS_OUTPUT.PUT_LINE(‘职员姓名:’||empname);___EXCEPTIONWHENVALUE_ERRORTHENDBMS_OUTPUT.PUT_LINE(‘要存储在变量中的值过大’)END;用SQL语句完成以下查询操作:(1)查询20部门的所有员工信息。select*fromempwheredeptno=20;(2)列出工资高于公司平均工资的所有雇员信息。select*fromscott.empwheresal(selectavg(sal)fromscott.emp);(3)列出部门名称和这些部门的雇员信息,同时列出没有的部门信息。5selectdept.deptno,dept.dname,emp.empno,emp.enamefromdeptleftjoinempondept.deptno=emp.deptno假设当前用户为SYSTEM,创建用户user1,口令为abc,授予用户user1连接数据库的权限CONNECT,以及对SCOTT模式下的EMP表进行查询(SELECT)权限,并允许该用户向其他用户授权。CREATEUSERuser1IdentfiedbyabcTemporarytablespacetempAccountunlock;Grantconnect,selecttousers;创建大小为100MB的表空间MYTS,数据文件为C:\oradata\ORCL\MYTS01.DBF,允许自动扩张数据文件,增量为10MB,数据文件的最大容量为300MB。