数据库程序员面试分类真题8.docx
《数据库程序员面试分类真题8.docx》由会员分享,可在线阅读,更多相关《数据库程序员面试分类真题8.docx(16页珍藏版)》请在优知文库上搜索。
1、数据库程序员面试分类真题8筒答题1. 在OraCle中,什么是异常?正确答案:异常(EXCePtion)处理是用来处理正常执行过程中未预料到的事件,包括程序块的异常处理、预定义的错误和自定义错误。(江南博哥)如果P1./SQ1.程序块一旦产生异常,而程序并没有指出如何处理,那么程序就会H动终止运行。异常处理部分一般放在P1./SQ1.程序体的后半部分,结构如下。EXCEPTIONWHENfirst_exceptionTHENWHENSeCOnd_exceptionTHENWHENOTHERSTHEN考点程序处理2. Oracle的异常可以分为哪几类?正确答案:OraCle将异常分为预定义异常、
2、非预定义异常和自定义异常三种。1 .预定义异常(Predefined)当P1./SQ1.应用程序违反了Oracle规定的限制时,就会隐含地触发一个内部异常,这就是预定义异常。预定义异常用于处理常见的OraCIe错误,对这种异常情况的处理,无须在程序中定义,由OraCIe自动将其触发。它们全部放在P1./SQ1.自带的标准包中,这样程序员就无须再次定义了。预定义异常大约有20多个,下表是些常见的预定义异常。借误号异常错误信息名称说明ORA-01403NODATAFOUNDSE1.ECTINTO没有找到数据ORA-01422TOOMANYROWSSE1.ECTINTO返回多行OKA-PROGRAM
3、ERROR内部错误,需重新安装数据字典视图和06501P1./SQ1.包OKA-06511CURSORA1.READYOPEN试图打开一个已存在的游标OKA-06530ACCESSINTONU1.1.试图为NU1.1.对象的属性赋值OKA-01012NOT1.OGGEDON没有连接到OracleORA-00051TIMEOUTj)n_resource在等待资源时发生超时ORA-00001DUP_VA1._ON_INDEX试图破坏一个唯一性限制ORA-010171.oGI_DENIED无效的用户名/口令ORA-01476ZEROJ)IVIDE试图被零除OKA-01722INA1.ID转换一个数字
4、失败OKA-06500STORAGEERROR内存不够或内存被破坏触发的内部错误OKA-06502VA1.UEERROR赋值操作,变量长度不足,触发该异常OKA-06504ROWTYPEMISMATCH宿主游标变量与P1./SQ1.变量有不兼容行类型OKA-06531CO1.1.ECTIONISNU1.1.试图给没有初始化的鼓套式变量或者VARRY变量赋值TRANSACTION_BACKEDJ)UT由于发生死锁事务被撤销S1.BSCRIPOUTSIDE1.IMlT对嵌套或VARRAY索引使用了负数ORA01001INA1.ID.CURSOR试图使用一个无效的游标ORA-00061OKA-065
5、32ORA-06533SUBSCRIPT_BEYOND_COUNT鬻鬻VARRAY索引的用用大于集合中兀35tfI奴2 .非预定义异常(NOnPredefined)非预定义异常用于处理预定义异常不能处理的异常,即其他标准的Oracle错误。使用预定义异常只能处理系统预定义的20多个OraClC错误,而当使用P1./SQ1.开发应用程序时,可能会遇到其他的一些OraCle错误。例如,在P1./SQ1.块中执行DV1.语句时违反了约束规定等。在这样的情况下,就可以使用非预定义异常来处理。Oracle提供了2个函数SQ1.CODE和SQ1.ERRM用于返回错误信息。1)SQ1.CODE:返回错误代码
6、。2)SQ1.ERRM:返回与错误代码关联的消息。这样就可以在借误口志表中记录程序在执行过程中发生的错误信息了。3 .自定义异常(USeJdCfine)自定义异常用于处应与Oracle错误无关的其他情况。对这种异常情况的处理,需要用户在程序中定义,然后显式地在程序中将其触发。预定义异常和自定义异常都是与Oracle错误相关的,并且出现的Oracle错误会隐含地触发相应的异常;而自定义异常与OraCIe错误没有任何关联,它是由开发人员为特定情况所定义的异常。当与一个异常相关的错误出现时,就会隐含触发该异常。用户定义异常是通过显式使用RAISE语句来触发。当触发一个异常时,控制程序就转到异常块部分
7、,执行错误处理代码。考点程序处理3. 在OraCIe中,抛出异常有哪几种方式?正确答案:有三种方式可以抛出异常,分别是通过P1./SQ1.运行引擎、使用RAlSE语句和调用RAISE_APP1.ICATION_ERROR存储过程。当薮据库或P1./SQ1.在运行时发生了错误,此时的异常可以通过P1./SQ1.运行时的引擎自动抛出异常,这个无须过度关注。第二种是通过RAlSE语句抛出异常。显式抛出异常是程序员处理声明异常的习惯用法,但RAISE不限于声明了的异常,它可以抛出任何异常。比如卜.面一个订单输入的例子,若订单大于库存数量,则抛出异常,并且捕获该异常、处理该异常。第三种抛出异常的办法是通
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 程序员 面试 分类