Oracle-存储过程exception异常处理大全及实例经典最终_第1页
Oracle-存储过程exception异常处理大全及实例经典最终_第2页
Oracle-存储过程exception异常处理大全及实例经典最终_第3页
Oracle-存储过程exception异常处理大全及实例经典最终_第4页
Oracle-存储过程exception异常处理大全及实例经典最终_第5页
已阅读5页,还剩38页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、.:.;一个实例Commit;create or replace procedure PROC_SUNHONGBO_MONCHNL(tim varchar2) istimest varchar(8);timday varchar(33);sqlsql varchar(6666);no_result EXCEPTION;beginCommit;select to_char(sysdate,yyyymmddHH24miss) tima into timday from dual;select to_char(add_months(sysdate,-1),yyyymm) mon into times

2、t from dual;select tim mon into timest from dual;execute immediate delete report.wo_sunhongbo_chnl where mon = |tim;Commit;/*1、添加所需求的列 real_charge + time ,假设有就抛出异常后继续执行*/BEGINexecute immediate alter table shiyw11.t_my add real_charge|tim| varchar2(66);EXCEPTION WHEN no_result THEN DBMS_OUTPUT.PUT_LI

3、NE(他的数据更新语句失败了!); WHEN OTHERS THEN DBMS_OUTPUT.PUT_LINE(他的数据更新语句!曾经存在该列1:|tim);END;execute immediate update shiyw11.t_my set real_charge|tim| = null;Commit;Commit;dbms_output.put_line(timest:|timest|;tim:|tim|;timest:|sqlsql);Commit;end PROC_SUNHONGBO_MONCHNL;/Commit;主要内容如下:1.1异常处置概念1.1.1预定义的异常处置1.1

4、.2非预定义的异常处置1.1.3用户自定义的异常处置1.1.4用户定义的异常处置1.2异常错误传播1.2.1在执行部分引发异常错误1.2.2在声明部分引发异常错误1.3异常错误处置编程1.4在PL/SQL中运用SQLCODE,SQLERRM异常处置函数即使是写得最好的PL/SQL程序也会遇到错误或未预料到的事件。一个优秀的程序都应该可以正确处置各种出错情况,并尽能够从错误中恢复。任何ORACLE错误报告为ORA-xxxxx方式的Oracle错误号、PL/SQL运转错误或用户定义条件不一写是错误,都可以。当然了,PL/SQL编译错误不能经过PL/SQL异常处置来处置,由于这些错误发生在PL/SQ

5、L程序执行之前。ORACLE提供异常情况(EXCEPTION)和异常处置(EXCEPTIONHANDLER)来实现错误处置。1.1异常处置概念异常情况处置(EXCEPTION)是用来处置正常执行过程中未预料的事件,程序块的异常处置预定义的错误和自定义错误,由于PL/SQL程序块一旦产生异常而没有指出如何处置时,程序就会自动终止整个程序运转.有三种类型的异常错误: 1预定义(Predefined)错误ORACLE预定义的异常情况大约有24个。对这种异常情况的处置,无需在程序中定义,由ORACLE自动将其引发。 2非预定义(Predefined)错误 即其他规范的ORACLE错误。对这种异常情况的

6、处置,需求用户在程序中定义,然后由ORACLE自动将其引发。 3用户定义(User_define)错误程序执行过程中,出现编程人员以为的非正常情况。对这种异常情况的处置,需求用户在程序中定义,然后显式地在程序中将其引发。异常处置部分普通放在PL/SQL程序体的后半部,构造为:EXCEPTIONWHENfirst_exceptionTHENWHENsecond_exceptionTHENWHENOTHERSTHENEND;异常处置可以按恣意次序陈列,但OTHERS必需放在最后.1.1.1预定义的异常处置 预定义阐明的部分ORACLE异常错误错误号异常错误信息称号阐明ORA-0001Dup_val

7、_on_index违反了独一性限制ORA-0051Timeout-on-resource在等待资源时发生超时ORA-0061Transaction-backed-out由于发生死锁事务被吊销ORA-1001Invalid-CURSOR试图运用一个无效的游标ORA-1012Not-logged-on没有衔接到ORACLEORA-1017Login-denied无效的用户名/口令ORA-1403No_data_foundSELECTINTO没有找到数据ORA-1422Too_many_rowsSELECTINTO前往多行ORA-1476Zero-divide试图被零除ORA-1722Invalid

8、-NUMBER转换一个数字失败ORA-6500Storage-error内存不够引发的内部错误ORA-6501Program-error内部错误ORA-6502Value-error转换或截断错误ORA-6504Rowtype-mismatch宿主游标变量与PL/SQL变量有不兼容行类型ORA-6511CURSOR-already-OPEN试图翻开一个已处于翻开形状的游标ORA-6530Access-INTO-null试图为null对象的属性赋值ORA-6531Collection-is-null试图将Exists以外的集合(collection)方法运用于一个nullpl/sql表上或var

9、ray上ORA-6532Subscript-outside-limit对嵌套或varray索引得援用超出声明范围以外ORA-6533Subscript-beyond-count对嵌套或varray索引得援用大于集合中元素的个数.对这种异常情况的处置,只需在PL/SQL块的异常处置部分,直接援用相应的异常情况名,并对其完成相应的异常错误处置即可。例1:更新指定员工工资,如工资小于1500,那么加100;DECLAREv_empnoemployees.employee_id%TYPE:=&empno;v_salemployees.salary%TYPE;BEGINSELECTsalaryINTOv

10、_salFROMemployeesWHEREemployee_id=v_empno;IFv_sal=1500THENUPDATEemployeesSETsalary=salary+100WHEREemployee_id=v_empno;DBMS_OUTPUT.PUT_LINE(编码为|v_empno|员工工资已更新!);ELSEDBMS_OUTPUT.PUT_LINE(编码为|v_empno|员工工资曾经超越规定值!);ENDIF;EXCEPTIONWHENNO_DATA_FOUNDTHENDBMS_OUTPUT.PUT_LINE(数据库中没有编码为|v_empno|的员工);WHENTOO_

11、MANY_ROWSTHENDBMS_OUTPUT.PUT_LINE(程序运转错误!请运用游标);WHENOTHERSTHENDBMS_OUTPUT.PUT_LINE(SQLCODE|-|SQLERRM);END;1.1.2非预定义的异常处置对于这类异常情况的处置,首先必需对非定义的ORACLE错误进展定义。步骤如下:1.在PL/SQL块的定义部分定义异常情况:EXCEPTION;2.将其定义好的异常情况,与规范的ORACLE错误联络起来,运用EXCEPTION_INIT语句:PRAGMAEXCEPTION_INIT(,);3.在PL/SQL块的异常情况处置部分对异常情况做出相应的处置。例2:删

12、除指定部门的记录信息,以确保该部门没有员工。INSERTINTOdepartmentsVALUES(50,FINANCE,CHICAGO);DECLAREv_deptnodepartments.department_id%TYPE:=&deptno;deptno_remainingEXCEPTION;PRAGMAEXCEPTION_INIT(deptno_remaining,-2292);/*-2292是违反一致性约束的错误代码*/BEGINDELETEFROMdepartmentsWHEREdepartment_id=v_deptno;EXCEPTIONWHENdeptno_remainin

13、gTHENDBMS_OUTPUT.PUT_LINE(违反数据完好性约束!);WHENOTHERSTHENDBMS_OUTPUT.PUT_LINE(SQLCODE|-|SQLERRM);END;1.1.3用户自定义的异常处置当与一个异常错误相关的错误出现时,就会隐含触发该异常错误。用户定义的异常错误是经过显式运用RAISE语句来触发。当引发一个异常错误时,控制就转向到EXCEPTION块异常错误部分,执行错误处置代码。对于这类异常情况的处置,步骤如下:1在PL/SQL块的定义部分定义异常情况:EXCEPTION;2RAISE;3在PL/SQL块的异常情况处置部分对异常情况做出相应的处置。例3:更

14、新指定员工工资,添加100;DECLAREv_empnoemployees.employee_id%TYPE:=&empno;no_resultEXCEPTION;BEGINUPDATEemployeesSETsalary=salary+100WHEREemployee_id=v_empno;IFSQL%NOTFOUNDTHENRAISEno_result;ENDIF;EXCEPTIONWHENno_resultTHENDBMS_OUTPUT.PUT_LINE(他的数据更新语句失败了!);WHENOTHERSTHENDBMS_OUTPUT.PUT_LINE(SQLCODE|-|SQLERRM)

15、;END;1.1.4用户定义的异常处置调用DBMS_STANDARD(ORACLE提供的包)包所定义的RAISE_APPLICATION_ERROR过程,可以重新定义异常错误音讯,它为运用程序提供了一种与ORACLE交互的方法。RAISE_APPLICATION_ERROR的语法如下:RAISE_APPLICATION_ERROR(error_number,error_message,keep_errors); 这里的error_number是从20,000到20,999之间的参数,error_message是相应的提示信息(2048字节),keep_errors为可选,假设keep_erro

16、rs=TRUE,那么新错误将被添加到曾经引发的错误列表中。假设keep_errors=FALSE(缺省),那么新错误将交换当前的错误列表。例4:创建一个函数get_salary,该函数检索指定部门的工资总和,其中定义了-20991和-20992号错误,分别处置参数为空和非法部门代码两种错误:CREATETABLEerrlog(ErrcodeNUMBER,ErrtextCHAR(40);CREATEORREPLACEFUNCTIONget_salary(p_deptnoNUMBER)RETURNNUMBERASv_salNUMBER;BEGINIFp_deptnoISNULLTHENRAISE_

17、APPLICATION_ERROR(-20991,部门代码为空);ELSIFp_deptnoinventory_rec.qty THENRAISEinventory_too_low;END IFEXCEPTIONWHEN inventory_too_low THENorder_rec.staus:=backordered;END;RAISE_APPLICATION_ERROR内建函数用于抛出一个异常并给异常赋予一个错误号以及错误信息。自定义异常的缺省错误号是+1,缺省信息是User_Defined_Exception。RAISE_APPLICATION_ERROR函数可以在pl/sql程序块的

18、执行部分和异常部分调用,显式抛出带特殊错误号的命名异常。 Raise_application_error(error_number,message,true,false)错误号的范围是-20,000到-20,999。错误信息是文本字符串,最多为2048字节。TRUE和FALSE表示是添加(TRUE)进错误堆(ERROR STACK)还是覆盖(overwrite)错误堆(FALSE)。缺省情况下是FALSE。如下代码所示:IF product_not_found THENRAISE_APPLICATION_ERROR(-20213,Invald product code TRUE);END IF

19、;4、异常的处置PL/SQL程序块的异常部分包含了程序处置错误的代码,当异常被抛出时,一个异常圈套就自动发生,程序控制分开执行部分转入异常部分,一旦程序进入异常部分就不能再回到同一块的执行部分。下面是异常部分的普通语法:EXCEPTIONWHEN exception_name THENCode for handing exception_nameWHEN another_exception THENCode for handing another_exceptionWHEN others THENcode for handing any other exception.用户必需在独立的WHEN

20、子串中为每个异常设计异常处置代码,WHEN OTHERS子串必需放置在最后面作为缺省处置器处置没有显式处置的异常。当异常发生时,控制转到异常部分,ORACLE查找当前异常相应的WHEN.THEN语句,捕捉异常,THEN之后的代码被执行,假设错误圈套代码只是退出相应的嵌套块,那么程序将继续执行内部块END后面的语句。假设没有找到相应的异常圈套,那么将执行WHEN OTHERS。在异常部分WHEN 子串没有数量限制。EXCEPTIONWHEN inventory_too_low THENorder_rec.staus:=backordered;replenish_inventory(invento

21、ry_nbr=inventory_rec.sku,min_amount=order_rec.qty-inventory_rec.qty);WHEN discontinued_item THEN-code for discontinued_item processingWHEN zero_divide THEN-code for zero_divideWHEN OTHERS THEN-code for any other exceptionEND;当异常抛出后,控制无条件转到异常部分,这就意味着控制不能回到异常发生的位置,当异常被处置和处理后,控制前往到上一层执行部分的下一条语句。BEGINDE

22、CLAREbad_credit exception;BEGINRAISEbad_credit;-发生异常,控制转向;EXCEPTIONWHEN bad_credit THENdbms_output.put_line(bad_credit);END;-bad_credit异常处置后,控制转到这里EXCEPTIONWHEN OTHERS THEN-控制不会从bad_credit异常转到这里-由于bad_credit已被处置END;当异常发生时,在块的内部没有该异常处置器时,控制将转到或传播到上一层块的异常处置部分。BEGINDECLARE -内部块开场bad_credit exception;BE

23、GINRAISEbad_credit;-发生异常,控制转向;EXCEPTIONWHEN ZERO_DIVIDE THEN -不能处置bad_credite异常dbms_output.put_line(divide by zero error);END -终了内部块-控制不能到达这里,由于异常没有处理;-异常部分EXCEPTIONWHEN OTHERS THEN-由于bad_credit没有处理,控制将转到这里END;5、异常的传播没有处置的异常将沿检测异常调用程序传播到外面,当异常被处置并处理或到达程序最外层传播停顿。在声明部分抛出的异常将控制转到上一层的异常部分。BEGINexecutabl

24、e statementsBEGINtoday DATE:=SYADATE; -ERRRORBEGIN -内部块开场dbms_output.put_line(this line will not execute);EXCEPTIONWHEN OTHERS THEN-异常不会在这里处置END;-内部块终了EXCEPTIONWHEN OTHERS THEN处置异常END-处置oracle系统自动生成系统异常外,可以运用raise来手动生成错误。lRaise exception;lRaise package.exception;lRaise;以上是raise的三种运用方法。第一种用于生成当前程序中定义

25、的异常或在standard中的系统异常。DeclareInvalid_id exception;Id_values varchar(2);BeginId_value:=id_for(smith);If substr(id_value,1,1)!=xThenRaise invalid_id;End if;ExceptionWhen invalid_idThenDbms_output.put_line(this is an invalid id!);End;这是一个生成自定义异常的例子,当然也可以生成系统异常:declareemployee_id_in number;BeginSelect emp

26、loyee_id into employee_id_in from employ_list where employee_name=&n;If employee_id_in=0ThenRaise zero_devided;End if;ExceptionWhen zero_devidedThenDbms_output.put_line(wrong!);End;有一些异常是定义在非规范包中的,如UTL_FILE,DBMS_SQL以及程序员创建的包中异常。可以运用raise的第二种用法来生成异常。If day_overdue(isbn_in, browser_in) 365ThenRaise ov

27、erdue_pkg.book_is_lostEnd if;在最后一种raise的方式中,不带任何参数。这种情况只出如今希望将当前的异常传到外部程序时。ExceptionWhen no_data_foundThenRaise;End;Pl.sql运用raise_application_error过程来生成一个有详细描画的异常。当运用这个过程时,当前程序被中止,输入输出参数被置为原先的值,但任何DML对数据库所做的改动将被保管,可以在之后用rollback命令回滚。下面是该过程的原型:Procedure raise_application_error(Num binary_integer;Msg

28、varchar2;Keeperrorstack Boolean default false)其中num是在-20999到-20000之间的任何数字但现实上,DBMS_OUPUT和DBMS_DESCRIBLE包运用了-20005到-20000的数字;msg是小于2K个字符的描画语,任何大于2K的字符都将被自动丢弃;keeperrorstack默以为false,是指清空异常栈,再将当前异常入栈,假设指定true的话就直接将当前异常压入栈中。CREATE OR REPLACE PROCEDURE raise_by_language (code_in IN PLS_INTEGER)ISl_messag

29、e error_table.error_string%TYPE;BEGINSELECT error_stringINTO l_messageFROM error_table, v$nls_parameters vWHERE error_number = code_inAND string_language= v.VALUEAND v.parameter = NLS_LANGUAGE;RAISE_APPLICATION_ERROR (code_in, l_message);END;ORACL内部异常:ORA-00001: 违反独一约束条件 (.)ORA-00017: 恳求会话以设置跟踪事件ORA

30、-00018: 超出最大会话数ORA-00019: 超出最大会话答应数ORA-00020: 超出最大进程数 ()ORA-00021: 会话附属于其它某些进程;无法转换会话ORA-00022: 无效的会话 ID;访问被回绝ORA-00023: 会话援用进程私用内存;无法分别会话ORA-00024: 单一进程方式下不允许从多个进程注册ORA-00025: 无法分配ORA-00026: 丧失或无效的会话 IDORA-00027: 无法删去当前会话ORA-00028: 您的会话己被删去ORA-00029: 会话不是用户会话ORA-00030: 用户会话 ID 不存在。ORA-00031: 标志要删去的

31、会话ORA-00032: 无效的会话移植口令ORA-00033: 当前的会话具有空的移植口令ORA-00034: 无法在当前 PL/SQL 会话中ORA-00035: LICENSE_MAX_USERS 不能小于当前用户数ORA-00036: 超越递归 SQL () 级的最大值ORA-00037: 无法转换到属于不同效力器组的会话ORA-00038: 无法创建会话: 效力器组属于其它用户ORA-00050: 获取入队时操作系统出错ORA-00051: 等待资源超时ORA-00052: 超出最大入队资源数 ()ORA-00053: 超出最大入队数ORA-00054: 资源正忙,要求指定 NOWA

32、ITORA-00055: 超出 DML 锁的最大数ORA-00056: 对象 . 上的 DDL 锁以不兼容方式挂起ORA-00057: 超出暂时表锁的最大数ORA-00058: DB_BLOCK_SIZE 必需为才可安装此数据库 (非 )ORA-00059: 超出 DB_FILES 的最大值ORA-00060: 等待资源时检测到死锁ORA-00061: 另一个例程设置了不同的 DML_LOCKSORA-00062: 无法获得 DML 全表锁定;DML_LOCKS 为 0ORA-00063: 超出 LOG_FILES 的最大数ORA-00064: 对象过大以致无法分配在此 O/S (,)ORA-

33、00065: FIXED_DATE 的初始化失败ORA-00066: LOG_FILES 为 但需求成为 才可兼容ORA-00067: 值 对参数 无效;至少必需为ORA-00068: 值 对参数 无效,必需在 和 之间ORA-00069: 无法获得锁定 - 禁用了表锁定ORA-00070: 命令无效ORA-00071: 进程号必需介于 1 和 之间ORA-00072: 进程不活动ORA-00073: 命令 介于 和 个参数之间时运用ORA-00074: 未指定进程ORA-00075: 在此例程未找到进程 ORA-00076: 未找到转储ORA-00077: 转储 无效ORA-00078: 无

34、法按称号转储变量ORA-00079: 未找到变量ORA-00080: 层次 指定的全局区域无效ORA-00081: 地址范围 ,) 不可读ORA-00082: 的内存大小不在有效集合 1, 2, 4 之内ORA-00083: 警告: 能够损坏映射的 SGAORA-00084: 全局区域必需为 PGA, SGA 或 UGAORA-00085: 当前调用不存在ORA-00086: 用户调用不存在ORA-00087: 命令无法在远程例程上执行ORA-00088: 共享效力器无法执行命令ORA-00089: ORADEBUG 命令中无效的例程号ORA-00090: 未能将内存分配给群集数据库 ORAD

35、EBUG 命令ORA-00091: LARGE_POOL_SIZE 至少必需为ORA-00092: LARGE_POOL_SIZE 必需大于 LARGE_POOL_MIN_ALLOCORA-00093: 必需介于 和 之间ORA-00094: 要求整数值ORA-00096: 值 对参数 无效,它必需 之间ORA-00097: 运用 Oracle SQL 特性不在 SQL92 级中ORA-00099: 等待资源时发生超时,能够是 PDML 死锁所致ORA-00100: 未找到数据ORA-00101: 系统参数 DISPATCHERS 的阐明无效ORA-00102: 调度程序无法运用网络协议ORA

36、-00103: 无效的网络协议;供调度程序备用ORA-00104: 检测到死锁;全部公用效力器已锁定等待资源ORA-00105: 未配置网络协议 的调度机制ORA-00106: 无法在衔接到调度程序时启动/封锁数据库ORA-00107: 无法衔接到 ORACLE 监听器进程ORA-00108: 无法设置调度程序以同步进展衔接ORA-00111: 由于效力器数目限制在 , 所以没有启动一切效力器ORA-00112: 仅能创建多达 (最多指定) 个调度程序ORA-00113: 协议名 过长ORA-00114: 短少系统参数 SERVICE_NAMES 的值ORA-00115: 衔接被回绝;调度程序

37、衔接表已满ORA-00116: SERVICE_NAMES 名过长ORA-00117: 系统参数 SERVICE_NAMES 的值超出范围ORA-00118: 系统参数 DISPATCHERS 的值超出范围ORA-00119: 系统参数 的阐明无效ORA-00120: 未启用或安装调度机制ORA-00121: 在短少 DISPATCHERS 的情况下指定了 SHARED_SERVERSORA-00122: 无法初始化网络配置ORA-00123: 空闲公用效力器终止ORA-00124: 在短少 MAX_SHARED_SERVERS 的情况下指定了 DISPATCHERSORA-00125: 衔接

38、被回绝;无效的演示文稿ORA-00126: 衔接被回绝;无效的反复ORA-00127: 调度进程 不存在ORA-00128: 此命令需求调度进程名ORA-00129: 监听程序地址验证失败 ORA-00130: 监听程序地址 无效ORA-00131: 网络协议不支持注册 ORA-00132: 语法错误或无法解析的网络称号 ORA-00150: 反复的事务处置 IDORA-00151: 无效的事务处置 IDORA-00152: 当前会话与恳求的会话不匹配ORA-00153: XA 库中的内部错误ORA-00154: 事务处置监视器中的协议错误ORA-00155: 无法在全局事务处置之外执行任务O

39、RA-00160: 全局事务处置长度 超出了最大值 ()ORA-00161: 事务处置的分支长度 非法 (允许的最大长度为 )ORA-00162: 外部 dbid 的长度 超出了最大值 ()ORA-00163: 内部数据库名长度 超出了最大值 ()ORA-00164: 在分布式事务处置中不允许独立的事务处置ORA-00165: 不允许对远程操作进展可移植分布式自治转换ORA-00200: 无法创建控制文件ORA-00201: 控制文件版本 与 ORACLE 版本 不兼容ORA-00202: 控制文件: ORA-00203: 运用错误的控制文件ORA-00204: 读控制文件时出错 (块 ,#

40、块 )ORA-00205: 标识控制文件出错,有关概略,请检查警告日志ORA-00206: 写控制文件时出错 (块 ,# 块 )ORA-00207: 控制文件不能用于同一数据库ORA-00208: 控制文件的称号数超出限制ORA-00209: 控制文件块大小不匹配,有关概略,请检查警告日志ORA-00210: 无法翻开指定的控制文件ORA-00211: 控制文件与先前的控制文件不匹配ORA-00212: 块大小 低于要求的最小大小 ( 字节)ORA-00213: 不能重新运用控制文件;原文件大小为 ,还需ORA-00214: 控制文件 版本 与文件 版本 不一致ORA-00215: 必需至少存

41、在一个控制文件ORA-00216: 无法重新调整从 8.0.2 移植的控制文件大小ORA-00217: 从 9.0.1 进展移植无法重新调整控制文件的大小ORA-00218: 控制文件的块大小 与 DB_BLOCK_SIZE () 不匹配ORA-00219: 要求的控制文件大小 超出了允许的最大值ORA-00220: 第一个例程未安装控制文件,有关概略,请检查警告日志ORA-00221: 写入控制文件出错ORA-00222: 操作将重新运用当前已安装控制文件的称号ORA-00223: 转换文件无效或版本不正确ORA-00224: 控制文件重设大小尝试运用非法记录类型 ()ORA-00225:

42、控制文件的预期大小 与实践大小 不同ORA-00226: 备用控制文件翻开时不允许进展操作ORA-00227: 控制文件中检测到损坏的块: (块 ,# 块 )ORA-00228: 备用控制文件名长度超出了最大长度ORA-00229: 操作不允许: 已挂起快照控制文件入队ORA-00230: 操作不允许: 无法运用快照控制文件入队ORA-00231: 快照控制文件未命名ORA-00232: 快照控制文件不存在, 已损坏或无法读取ORA-00233: 控制文件副本已损坏或无法读取ORA-00234: 标识或翻开快照或复制控制文件时出错ORA-00235: 控制文件固定表因并发更新而不一致ORA-0

43、0236: 快照操作不允许: 挂上的控制文件为备份文件ORA-00237: 快照操作不允许: 控制文件新近创建ORA-00238: 操作将重用属于数据库一部分的文件名ORA-00250: 未启动存档器ORA-00251: LOG_ARCHIVE_DUPLEX_DEST 不能是与字符串 一样的目的地ORA-00252: 日志 在线程 上为空,无法存档ORA-00253: 字符限制在 以内,归档目的字符串 超出此限制ORA-00254: 存档控制字符串 时出错ORA-00255: 存档日志 (线程 , 序列 # ) 时出错ORA-00256: 无法翻译归档目的字符串ORA-00257: 存档器错误

44、。在释放之前仅限于内部衔接ORA-00258: NOARCHIVELOG 方式下的人工存档必需标识日志ORA-00259: 日志 (翻开线程 ) 为当前日志,无法存档ORA-00260: 无法找到联机日志序列 (线程 )ORA-00261: 正在存档或修正日志 (线程 )ORA-00262: 当前日志 (封锁线程 ) 无法切换ORA-00263: 线程 没有需求存档的记录ORA-00264: 不要求恢复ORA-00265: 要求例程恢复,无法设置 ARCHIVELOG 方式ORA-00266: 需求存档日志文件名ORA-00267: 无需存档日志文件名ORA-00268: 指定的日志文件不存在

45、 ORA-00269: 指定的日志文件为线程 的一部分 (非 )ORA-00270: 创建存档日志 时出错ORA-00271: 没有需求存档的日志ORA-00272: 写存档日志 时出错ORA-00273: 未记录的直接加载数据的介质恢复ORA-00274: 非法恢复选项ORA-00275: 曾经开场介质恢复ORA-00276: CHANGE 关键字已指定但未给出更改编号ORA-00277: UNTIL 恢复标志 的非法选项ORA-00278: 此恢复不再需求日志文件 ORA-00279: 更改 (在 生成) 对于线程 是必需的ORA-00280: 更改 对于线程 是按序列 # 进展的ORA-

46、00281: 不能运用调度进程执行介质恢复ORA-00282: UPI 调用不被支持,请运用 ALTER DATABASE RECOVERORA-00283: 恢复会话因错误而取消ORA-00284: 恢复会话仍在进展ORA-00285: TIME 未作为字符串常数给出ORA-00286: 无可用成员,或成员无有效数据ORA-00287: 未找到指定的更改编号 (在线程 中)ORA-00288: 要继续恢复,请键入 ALTER DATABASE RECOVER CONTINUEORA-00289: 建议:ORA-00290: 操作系统出现存档错误。请参阅下面的错误ORA-00291: PARA

47、LLEL 选项要求数字值ORA-00292: 未安装并行恢复功能ORA-00293: 控制文件与重做日志不同步ORA-00294: 无效的存档日志格式标识 ORA-00295: 数据文件号 无效,必需介于 1 与 之间ORA-00296: 已超出 RECOVER DATAFILE LIST 的最大文件数 ()ORA-00297: 必需在 RECOVER DATAFILE START 之前指定 RECOVER DATAFILE LISTORA-00298: 丧失或无效的 TIMEOUT 间隔ORA-00299: 必需在数据文件 上运用文件级介质恢复ORA-00300: 指定的重做日志块大小 非法

48、 - 超出限制ORA-00301: 添加日志文件 时出错 - 无法创建文件ORA-00302: 日志超出限制ORA-00303: 无法处置多次中断的重做ORA-00304: 恳求的 INSTANCE_NUMBER 在运用中ORA-00305: 日志 (线程 ) 不一致;属于另一个数据库ORA-00306: 此数据库中的例程限制ORA-00307: 恳求的 INSTANCE_NUMBER 超出限制,最大为ORA-00308: 无法翻开存档日志 ORA-00309: 日志属于错误的数据库ORA-00310: 存档日志包含序列 ;要求序列ORA-00311: 无法从存档日志读取标题ORA-00312

49、: 联机日志 线程 : ORA-00313: 无法翻开日志组 (线程 ) 的成员ORA-00314: 日志 (线程 ),估计序号 与 不匹配ORA-00315: 日志 (线程 ),标题中的线程 # 错误ORA-00316: 日志 (线程 ),标题中的类型 不是日志文件ORA-00317: 标题中的文件类型 不是日志文件ORA-00318: 日志 (线程 ),估计文件大小 与 不匹配ORA-00319: 日志 (线程 ) 具有错误的日志重置形状ORA-00320: 无法从日志 (线程 ) 读取文件标题ORA-00321: 日志 (线程 ),无法更新日志文件标题ORA-00322: 日志 (线程

50、) 不是当前副本ORA-00323: 线程 的当前日志不可用而一切其它日志均需求存档ORA-00324: 日志文件 的翻译名 太长, 字符超出 限制ORA-00325: 已归档线程 的日志,标题中的线程 # 错误ORA-00326: 日志在更改 开场,需求更早的更改ORA-00327: 日志 (线程 ),实践大小 小于需求的ORA-00328: 归档日志在更改 终了,需求稍后的更改ORA-00329: 归档日志在更改 开场,需求更改ORA-00330: 归档日志在更改 终了,需求更改ORA-00331: 日志版本 与 ORACLE 版本 不兼容ORA-00332: 归档日志过小 - 能够未完全

51、归档ORA-00333: 重做日志读取块 计数 出错ORA-00334: 归档日志: ORA-00335: 联机日志 : 没有此编号的日志,日志不存在ORA-00336: 大小为 的日志文件块数小于最小 块数ORA-00337: 日志文件 不存在且未指定大小ORA-00338: 日志 (线程 ) 比控制文件更新ORA-00339: 归档日志未包含任何重做ORA-00340: 处置联机日志 (线程 ) 时出现 I/O 错误ORA-00341: 日志 (线程 ),标题中的日志 # 错误ORA-00342: 归档日志在上一个 RESETLOGS 之前创建程序包ORA-00343: 错误过多,已封锁日

52、志成员ORA-00344: 无法重新创建联机日志 ORA-00345: 重做日志写入块 计数 出错ORA-00346: 日志成员标志为 STALEORA-00347: 日志 (线程 ),估计块大小 与 不匹配ORA-00348: 单一进程重做失败;必需中止例程ORA-00349: 无法获得 的块大小ORA-00350: 日志 (线程 ) 中需求归档ORA-00351: recover-to 时间无效ORA-00352: 线程 的一切日志均需求归档 - 无法启用ORA-00353: 日志损坏接近块 更改 时间ORA-00354: 损坏重做日志块标题ORA-00355: 更改编号无次序ORA-00

53、356: 更改阐明中的长度不一致ORA-00357: 日志文件指定了过多成员,最大为ORA-00358: 指定了过多文件成员,最大为ORA-00359: 日志文件组 不存在ORA-00360: 非日志文件成员:ORA-00361: 无法删除最后一个日志成员 (组 )ORA-00362: 组成组 中的有效日志文件要求输入成员ORA-00363: 日志不是归档版本ORA-00364: 无法将标题写入新日志成员ORA-00365: 指定日志不是正确的下一个日志ORA-00366: 日志 (线程 ),文件标题中的校验和错误ORA-00367: 日志文件标题中的校验和错误ORA-00368: 重做日志块

54、中的校验和错误ORA-00369: 线程 的当前日志不可用且其它日志已被去除ORA-00370: Rcbchange 操作过程中能够出现死锁ORA-00371: 共享池内存缺乏ORA-00372: 此时无法修正文件ORA-00373: 联机日志版本 与 ORACLE 版本 不兼容ORA-00374: 参数 db_block_size = 无效; 它必需是 的倍数, 范围为 .ORA-00375: 无法获得默许 db_block_sizeORA-00376: 此时无法读取文件ORA-00377: 文件 的频繁备份导致写操作延迟ORA-00378: 无法按指定创建缓冲池ORA-00379: 缓冲池

55、 中无法提供 K 块大小的空闲缓冲区ORA-00380: 无法指定 db_k_cache_size, 由于 K 是规范块大小ORA-00381: 无法将新参数和旧参数同时用于缓冲区高速缓存的大小阐明ORA-00382: 不是有效的块大小, 有效范围为 .ORA-00383: DEFAULT 高速缓存的块大小 不能减少至零ORA-00384: 没有足够的内存来添加高速缓存的大小ORA-00385: cannot enable Very Large Memory with new buffer cache parametersORA-00390: 日志 (线程 ) 正被去除,无法成为当前日志ORA

56、-00391: 一切线程必需同时转换为新的日志格式ORA-00392: 日志 (线程 ) 正被去除,不允许操作ORA-00393: 脱机数据文件的恢复需求日志 (线程 )ORA-00394: 在尝试存档时重新运用联机日志ORA-00395: 克隆 数据库的联机日志必需重命名ORA-00396: 错误 需求退回到单次遍历恢复ORA-00397: 对于文件 (块 ), 检测到写入丧失情况ORA-00398: 由于重新配置而中止了线程恢复ORA-00399: 重做日志中的更改阐明已损坏ORA-00400: 无效的版本值 (对于参数 )ORA-00401: 此版本不支持参数 的值ORA-00402:

57、版本 的数据库更改无法用于版本ORA-00403: () 不同于其它例程 ()ORA-00404: 未找到转换文件: ORA-00405: 兼容类型ORA-00406: COMPATIBLE 参数需求为 或更大ORA-00407: 不允许从版本 . 到 . 滚动晋级ORA-00408: 参数 设置为 TRUEORA-00409: COMPATIBLE 必需是 或更高值才干运用 AUTO SEGMENT SPACE MANAGEMENTORA-00436: 没有 ORACLE 软件运用权,请与 Oracle 公司联络获得协助 ORA-00437: 没有 ORACLE 软件功能运用权,请与 Ora

58、cle 公司联络获得协助 ORA-00438: 未安装 选项ORA-00439: 未启用特性:ORA-00443: 背景进程 未启动ORA-00444: 背景进程 启动时失败ORA-00445: 背景进程 在 秒之后仍没有启动ORA-00446: 背景进程不测启动ORA-00447: 背景进程出现致命错误ORA-00448: 背景进程正常终了ORA-00449: 背景进程 因错误 异常终止ORA-00470: LGWR 进程因错误而终止ORA-00471: DBWR 进程因错误而终止ORA-00472: PMON 进程因错误而终止ORA-00473: ARCH 进程因错误而终止ORA-0047

59、4: SMON 进程因错误而终止ORA-00475: TRWR 进程因错误而终止ORA-00476: RECO 进程因错误而终止ORA-00477: SNP* 进程因错误而终止ORA-00478: SMON 进程由于 错误终止ORA-00480: LCK* 进程因错误而终止ORA-00481: LMON 进程因错误而终止ORA-00482: LMD* 进程因错误而终止ORA-00483: 封锁进程过程中异常终止ORA-00484: LMS* 进程因错误而终止ORA-00485: DIAG 进程由于 错误终止ORA-00486: 功能不可用ORA-00568: 超出中断处置程序的最大数ORA-0

60、0574: osndnt: $CANCEL 失败 (中断)ORA-00575: osndnt: $QIO 失败 (发送 out-of-band 中断)ORA-00576: 带内中断协议错误ORA-00577: 带外中断协议错误ORA-00578: 重置协议错误ORA-00579: osndnt: 效力器收到衔接恳求格式不正确ORA-00580: 协议版本不匹配ORA-00581: osndnt: 无法分配上下文区域ORA-00582: osndnt: 无法吊销分配上下文区域ORA-00583: osndnt: $TRNLOG 失败ORA-00584: 无法封锁衔接ORA-00585: 主机称号

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论