《Oracle第五章-异常处理-练习题及答案.docx》由会员分享,可在线阅读,更多相关《Oracle第五章-异常处理-练习题及答案.docx(3页珍藏版)》请在课桌文档上搜索。
1、习题5一、选择题1.在PL/SQL中,如果SELECT语句没有返回列,则会引发Orade错误,并引发()。A.自定义异常B.软件异常C.系统异常D.突发异常2 .关于出错处理,下列叙述错误的是()A.可以有多个WHENOTHERS从句B.可以在块中定义多个出错处理,每一个出错处理包含一组语句C.在块中必须以关键字EXCEPTION开始一个出错处理D.将Whenothers从句放置在所有其他出错处理从句的后面3 .当显式游标关闭时,又调用其属性,将抛出O异常。A.N0_DA7A_F0UNDB.VALUE_ERRORC.INVALID_CURSORD.T00_MANY_R0wS4 .下列说法正确的
2、是O;A.系统预定义的错误需要在声明部分定义B.系统预定义的错误需要用户触发C.系统预定义的错误是在STANDARD包中定义的D.系统预定义的错误无法处理5 .自定义异常必须使用O语句引发。A.IFB.WHENC.EXCEPTIOND.RAISE6 .关于用户自定义错误的步骤中,不包括OA.定义错误B.触发错误C.分析错误D.处理错误A. PL/SQL语句块中,当SELECT.INTO语句不返回任何数据行时,将抛出()异常。A.N0DA1AF0UNDB. VALUE_ERROC. DUP_VAL_INDEXD. T00_MANY_R0WS二、应用题带有异常处理的PL/SQL程序EI输出某位雇员
3、的姓名和工资(员工编号从钢随机输入)。(1)如果雇员不存在,触发系统异常,输出时查无此人”。(2)如果雇员存在,但工资800元,触发自定义异常,输出Er工资太低,需要涨工资”。(3)如果雇员存在,且工资800元,输出该雇员的姓名和工资。2.编写带有异常处理的PL/SQL程序团从键盘上随机输入某个学生的姓名,判断该学生选修“maths”的成绩是否及格。(1)如果不及格,触发自定义异常,输出即此学生需要补考匕(2)如果及格,则输出成绩,(3)如果该学生不存在,触发系统预定义异常,输出Er查无此学生第1章异常处理一、选择题1.C2.A3.C4.C5.D6.C7.A二、上机实验题1 .编写带有异常处理
4、的PL/SQL程序:输出某位雇员的姓名和工资(员工编号从键盘随机输入)。(1)如果雇员不存在,触发系统异常,输出:“查无此人”。(2)如果雇员存在,但工资小于800元,触发自定义异常,输出:“工资太低,需要涨工资”。(3)如果雇员存在,且工资=800元,输出该雇员的姓名和工资。答:declarev_salemp.sal%type;v_enameemp.ename%type;eexception;beginselectename,salintov_ename,v_salfromempwhereempno=&a;ifv_sal800thenraisee;elsedbms_output.put_li
5、ne(v_enamev_sal);endif;exceptionwhenno_data_foundthendbms_oUtPUt.putine(查无此人);whenethendbms_oUtPUt.putine(工资太低,需要涨工资);end;2 .编写带有异常处理的PL/SQL程序:从键盘上随机输入某个学生的姓名,判断该学生选修“maths”的成绩是否及格。(1)如果不及格,触发自定义异常,输出:“此学生需要补考!”;(2)如果及格,则输出成绩。(3)如果该学生不存在,触发系统预定义异常,输出:“查无此学生!”答:declarev_snamestudent,sname%type:=&a_sn
6、ame;v_gradenumber;e_stuexception;beginselectgradeintov_gradefromstudent,sc,coursewherestudent,sno=o=oandsname=v_snameandcname=,maths,;ifvgrade60thenraiseestu;elsedbmsoutput.pUtline(成绩为:IIv_gradcII分);endif;exceptionwhene_stuthendbmsoutput.putinc(此学生的成绩为:v_grade分,需要补考!);whenno_data_foundthendbmsOUtPUt.putline(查无此学生!);end;