如何处理Oracle异常

分类:编程技术 时间:2024-02-20 15:41 浏览:0 评论:0
0
本文介绍如何处理Oracle异常。内容非常详细。有兴趣的朋友可以参考一下。希望对大家有所帮助。

1.异常的优点

如果没有异常,程序中应该检查每个命令的成功或失败,例如
BEGIN
SELECT。 ..
< -- 检查“未找到数据”错误
-- check for 'no data found' error
这种实现方法的缺点是错误处理没有和正常处理分开,可读性较差。使用异常可以方便错误处理,并且异常处理程序与正常事务逻辑无关。分开以提高可读性,例如
BEGIN
SELECT ...
SELECT ...
SELECT ...
...
EXCEPTION
WHEN NO_DATA_FOUND THEN -- 捕获所有“未找到数据”错误
2. e 的分类xceptions

异常有两种类型,一种是内部异常,一种是用户定义的异常。内部异常是执行期间返回到PL/SQL块的ORACLE错误或者由PL/SQL代码的操作引起的错误,例如零除法或内存溢出。用户定义的异常由开发人员显式定义,并在 PL/SQL 块中传递信息来控制应用程序错误处理。

每当PL/SQL违反ORACLE原则或者超出系统依赖原则时,就会隐式产生内部异常。由于每个 ORACLE 错误都有一个编号,并且异常在 PL/SQL 中按名称进行处理,因此 ORACLE 提供了预定义的内部异常。例如,当 SELECT INTO 语句不返回行时,会生成 ORACLE 异常 NO_DATA_FOUND。对于预订,最常用的异常如下:
异常oracle错误sqlcode值条件
no_data_found ora-01403 +100select into 语句不返回满足条件的记录
Too_many_rows ora-01422 - 1422 返回多条满足 select into 语句条件的记录
dup_val_on_index ora-00001 -1 对于数据库表,列已被限制为唯一索引,程序试图存储两个重复值
Value_error ora-06502 -6502 转换字符类型、截取或长度限制时会出现此异常。如果将字符分配给变量并且变量声明的长度短于该字符,则会引发此异常
Zero_divide ora-01476 -1476 Divisor is零
case_not_found ora-06592 -6530 对于 select case 语句,没有匹配条件,同时没有 else 语句捕获其他条件
Cursor_already_open ora-06511 -6511 程序试着打开一个已经打开的游标
timeout_on_resource ora-00051 -51 系统正在等待资源,且时间已到

如果要处理未命名的内部异常,必须使用 OTHERS 异常处理程序或 PRAGMA EXCEPTION_INIT。 PRAGMA是由编译器控制的,或者说是对编译器的注释。 PRAGMA 在编译时处理,而不是在运行时处理。 EXCEPTION_INIT告诉编译器将异常名称与ORACLE错误代码结合起来,这样任何内部异常都可以通过名称引用,并且可以通过名称为异常编写适当的异常处理程序。

在子程序中使用EXCEPTION_INIT语法如下:
PRAGMA EXCEPTION_INIT(exception_name, -Oracle_error_number);
在此语法中,异常名称是声明的异常。下面的例子是它的用法:
DECLARE
deadlock_Detected EXCEPTION;
PRAGMA EXCEPTION_INIT(deadlock_Detected, -60);
BEGIN
... -- 一些操作导致 ORA-00060 错误
EXCEPTION
WHEN deadlock_Detected THEN
< -- 处理错误
对于用户定义的异常,只能在PL/SQL块的声明部分声明异常。异常的名称由 EXCEPTION 关键字介绍:
​reserved_loaned Exception

异常产生后,控制权被传递到子程序的异常部分,异常被转移到子程序的异常部分。各自的异常控制块。代码中必须使用以下结构来处理错误。 :
​异常
​当异常1 then
​语句序列;
​当异常2 then
​语句序列; > 3. 异常抛出
通过PL/SQL运行时引擎

​2. 使用RAISE语句

​3.调用RAISE_APPLICATION_ERROR存储过程
当数据库或者PL/SQL运行时出现错误时,会自动抛出异常y PL/SQL 运行时引擎。还可以通过 RAISE 语句抛出异常
RAISEException_name;

显式抛出异常是程序员处理已声明异常的习惯用法,但 RAISE 并不限于已声明异常。抛出任何异常。例如,如果要对新的运行时异常处理程序使用 TIMEOUT_ON_RESOURCE 错误检测,只需在程序中使用以下语句:
RAISE TIMEOUT_ON_RESOUCE;

比如下面的订单录入,比如订单小于库存数量,就会抛出异常,捕获异常,并处理异常
声明
inventory_too_low异常;

--- 其他声明语句
> BEGIN
IF order_rec.qty>inventory_rec.qty THEN
RAISE inventory_too_low;
END IF
异常
WHEN inventory_too_low THEN
order_rec.staus:='缺货';
结束;

RAISE_APPLICATION_ERROR 内置函数用于抛出异常,并为异常分配错误号和错误消息。自定义异常默认错误号为+1,默认信息为User_Defined_Exception。可以在pl/sql程序块的执行部分和异常部分调用RAISE_APPLICATION_ERROR函数来显式抛出带有特殊错误号的命名异常。 Raise_application_error(error_number,message[,true,false]))

<错误编号的范围是 -20,000 到 -20,999。错误消息是文本字符串,最多 2048 字节。 TRUE和FALSE表示是添加(TRUE)到错误堆栈(ERROR STACK)还是覆盖(overwrite)错误堆栈(FALSE)。默认值为 FALSE。

<代码如下:
4. 异常处理

PL/SQL程序块的异常部分包含程序的代码处理错误。当抛出异常时,异常trap自动发生,程序控制离开执行部分。转移到异常部分。程序一旦进入异常部分,就无法返回到同一块的执行部分。下面是异常部分的一般语法:
EXCEPTION
WHEN exception_name THEN
处理Exception_name的代码
[WHEN another_exception THEN
处理another_exception的代码]
[ WHEN other THEN
处理任何其他异常的代码。]

用户必须在单独的 WHEN 子字符串中为每个异常设计异常处理代码,并且 WHEN OTHERS 子字符串必须放置在end 用作未显式处理的异常的默认处理程序。当异常发生时,控制转到异常部分。 ORACLE查找当前异常对应的WHEN..THEN语句,捕获该异常,然后执行THEN之后的代码。如果错误陷阱代码正好退出对应的嵌套b锁定,则程序将继续执行。内部块 END 之后的语句。如果没有找到对应的异常陷阱,则执行WHEN OTHERS。在异常部分WHEN中子串的数量没有限制。
异常
当 inventory_too_low 时
order_rec.staus:='backordered';
补充库存(inventory_nbr=>
inventory_rec.sku,min_amount=>order_rec.qty-inventory_rec .qty);
WHENdisrupted_item THEN
--disrupted_item 处理代码
WHEN Zero_divide THEN
--zero_divide 代码
WHEN OTHERS THEN
-- 任何其他代码异常
结束;

当抛出异常时,控制无条件转到异常部分,也就是说控制不能返回到异常发生的位置。当异常被处理并解决后,控制返回到上一级执行部分的下一条语句。
开始
声明
不良信用异常;
开始
提高 bad_credit;
--异常发生,控制转向;
异常
当 bad_credit 时
dbms_output.put_line('bad_credit');
结束;
--处理bad_credit异常后,控制移至此处
EXCEPTION
WHEN OTHERS THEN

<--控制不会从bad_credit异常移至此处

——-因为bad_credit已被处理


当异常发生时,块处理器内部不存在此类异常,控制权将转移或传播到前一层块的异常处理部分。

BEGIN
DECLARE --- 内部区块开始

开始
提高坏信用;

--异常发生,控制权转移;
EXCEPTION
WHEN ZERO_DIVIDE THEN --无法处理 bad_credite 异常
dbms_output.put_line('除以零错误');
> END --结束内部块

--控制无法到达这里,因为异常没有解决; />​WHEN OTHERS THEN
​--由于bad_credit未解决,控制权将转移到这里
​END;

<5.异常的传播

<未处理异常将与检测到的异常一起传播出调用程序,当异常被处理并解决或到达时传播停止程序的最外层。声明部分中引发的异常将控制权转移到上一级的异常部分。












可执行语句
​BEGIN ​
今日DATE:='SYADATE'; --ERRROR

 EXCEPTION
WHEN OTHERS THEN

--此处不处理异常

 END;--内部块结束
 EXCEPTION < br/>当其他人

处理异常

 完

---------------------------------- --- ----------------------------------------------------------- --- ----------------------------------
---------- --- ----------------------------------------------------------- --- ----------------------------------------------------------- --- --------

除了处理oracle系统自动产生系统异常之外,还可以使用raise来手动产生错误。

l Raise exception;

l Raise package.exception;

l Raise;

以上是raise的三种使用方式。第一个用于生成当前程序中定义的异常或标准中的系统异常。

  声明

Invalid_id 异常;

Id_values varchar(2);

开始

Id_value: =id_for('smith') ;

如果 substr(id_value,1,1)!='x'

提高 invalid_id;

结束如果;

异常

当invalid_id时

要生成自定义异常示例,当然也可以生成系统异常:

Declare

Employee_id_in Number;

开始

从employ_list中选择emplayee_id进入employee_id_in,其中employee_name=&n;

如果employee_id_in=0

< p>           引发zero_devided;

结束if;

异常

当zero_devided时

然后

Dbms_output.put_line ('错误!');

End;

一些异常是在标准包(如UTL_FILE、DBMS_SQL)和程序员创建的包中的非零异常中定义的。 raise 的第二个用途可用于生成异常。

如果 day_overdue(isbn_in, browser_in) > 365

提高 overdue_pkg.book_is_lost

结束 if;

< p>在 raise 的最后一种形式中,不带任何参数。这种情况仅在您想要将当前异常传递给外部程序时发生。

异常

当no_data_fou时nd

                                                                                                                                                 使用             使用 使用       使用                   使用 through out ' s ' through     s ' through through ‐   ‐ ‐ ‐                            to 当使用此进程时,当前程序将终止,输入和输出参数将设置为其原始值值,但通过 DML 对数据库所做的任何更改都将被保留,并且可以在以后使用回滚命令回滚。以下是该过程的原型:

procedure raise_application_error(

p>

)

其中 num 是 -20999 到 -20000 之间的任意数字(但事实上,DBMS_OUPUT和DBMS_DESCRIBLE包使用从-20005到-20000的数字); msg 小于 2K 字符的描述符。任何大于2K的字符都会被自动丢弃; keepErrorStack默认为false,表示清除异常堆栈,然后将当前异常压入堆栈。如果指定为 true,则当前异常将直接压入堆栈。

创建或替换过程 raise_by_language (code_in IN PLS_INTEGER)

IS

l_message error_table.error_string%TYPE;

BEGIN

SELECT error_string

INTO l_message

FROM error_table, v$nls_parameters v

WHERE error_number = code_in

AND string_language = v.VALUE

                AND v.parameter = 'NLS_LANGUAGE';; END;

ORACL 内部异常:

ORA-00001:违反唯一约束 (.)

ORA-00017:请求会话设置跟踪事件

ORA-00018:超出最大会话数

ORA-00019:超出允许的最大会话数

ORA-00020:超出最大进程数( )

ORA-00021:会话附加到某个其他进程;无法转换会话

ORA-00022:无效的会话ID;访问denied

ORA-00023:会话引用进程私有内存;会话无法分离

ORA-00024:在单进程模式下不允许从多个进程注册

ORA-00025:无法分配

ORA-00026:会话 ID 丢失或无效

ORA-00027:无法删除当前会话

ORA-00028:您的会话已被删除

ORA-00029: 该会话不是用户会话

ORA-00030: 用户会话 ID 不存在。

ORA-00031:将会话标记为删除

ORA-00032:会话迁移密码无效

ORA-00033:当前会话有一个空迁移密码

ORA-00034:不能在当前PL/SQL会话中

ORA-00035:LICENSE_MAX_USERS不能小于当前用户数

ORA-00036: 超过最大递归 SQL () 级别

ORA-00037: 无法转换为属于不同服务器组的会话

ORA-00038: Una能够创建会话:服务器组属于其他用户

ORA-00050:获取队列时操作系统错误

ORA-00051:等待资源超时

ORA-00052:超出最大排队资源数()

ORA-00053:超出最大排队资源数

ORA-00054:资源正忙,需要 NOWAIT

ORA-00055:超出 DML 锁的最大数量

ORA-00056:对象“.”上的 DDL 锁以不兼容模式挂起

ORA-00057:超出临时表锁的最大数量

ORA-00058:DB_BLOCK_SIZE 必须挂载此数据库(不)

ORA-00059:超过 DB_FILES 的最大值

ORA-00060:等待资源时检测到死锁

ORA-00061:另一个例程设置了不同的 DML_LOCKS

ORA-00062: 无法获取DML全表锁; DML_LOCKS 为 0

ORA-00063:LOG_FILES 超出最大数量

ORA-00064:对象太大,无法在此 O/S 中分配 (,)

ORA-00065:FIXED_DATE 初始化失败

ORA-00066:LOG_FILES 是但需要是兼容

ORA-00067:值对于参数无效;必须至少为

ORA-00068:值对于参数无效,必须介于 和

ORA-00069:无法获取锁 - 表锁定被禁用< br/>
ORA-00070:无效命令

ORA -00071:进程号必须介于 1 和

ORA-00072:进程“”不是Activity < br/>
ORA-00073:带有 和 参数之间的命令

ORA-00074:未指定进程

ORA-00075:在此找不到进程“”例程

ORA-00076:找不到转储

ORA-00077:转储无效

ORA-00078:无法按名称转储变量

ORA-00079:找不到变量

ORA-00080:为层次结构指定的全局区域无效

ORA -00081:地址范围 [,) 不是可读

ORA-00082:内存大小不在有效集 [1]、[2]、[4] 范围内

ORA -00083:警告:映射的 SGA 可能损坏

ORA-00084 :全局区域必须是PGA、SGA或UGA

ORA-00085:当前调用不存在

ORA-00086:用户调用不存在

ORA-00087:无法在远程例程上执行命令

ORA-00088:共享服务器无法执行命令

ORA-00089:ORADEBUG 命令中的例程编号无效< br/>
ORA-00090:无法为集群数据库ORADEBUG命令分配内存

ORA-00091:LARGE_POOL_SIZE必须至少为

ORA-00092:LARGE_POOL_SIZE必须大于 LARGE_POOL_MIN_ALLOC

ORA-00093: 必须介于 和

ORA-00094: 需要整数值

ORA-00096: 该值对于参数无效,它必须来自

ORA-00097:使用不在 SQL92 级别的 Oracle SQL 功能

ORA -00099:等待资源时发生超时,可能C由PDML死锁引起

ORA-00100:未找到数据

ORA-00101:系统参数DISPATCHERS的描述无效

ORA- 00102:调度程序无法使用网络协议

ORA-00103:无效的网络协议;用于调度程序备份

ORA-00104:检测到死锁;所有公共服务器都被锁定等待资源

ORA-00105:未配置网络协议的调度机制

ORA-00106:无法连接到调度程序Start/关闭数据库

ORA-00107:无法连接到ORACLE侦听进程

ORA-00108:无法设置调度程序同步连接

ORA- 00111:并非所有服务器都启动,因为服务器数量限制

ORA-00112:只能创建最多(最多指定)个调度程序

ORA-00113:协议名称太长

ORA-00114:系统参数 SERVICE_NAMES 缺少值

ORA-00115:连接被拒绝;调度程序连接表已满

ORA-00116:SERVICE_NAMES 名称太长

ORA-00117:系统参数 SERVICE_NAMES 的值超出范围

ORA-00118:系统参数DISPATCHERS的值超出范围

ORA-00119:系统参数的描述无效

ORA-00120:调度机制是未启用或安装

ORA-00121:未指定 DISPATCHERS 的 SHARED_SERVERS

ORA-00122:无法初始化网络配置

ORA-00123:空闲公共服务器终止

ORA-00124:未指定 MAX_SHARED_SERVERS 的调度员

ORA-00125:连接被拒绝;无效的演示

ORA-00126:连接被拒绝;无效重复

ORA-00127:调度程序进程不存在

ORA-00128:此命令需要调度进程名称

ORA-00129:侦听器地址验证失败''

ORA-00130:侦听器地址''无效

或A-00131: 网络协议不支持注册''

ORA-00132: 语法错误或无法解析的网络名称''

ORA-00150: 重复的事务 ID

ORA-00151:无效的事务 ID

ORA-00152:当前会话与请求的会话不匹配

ORA-00153:XA 库中的内部错误

ORA-00154:事务监视器中的协议错误

ORA-00155:无法在全局事务之外执行工作

ORA-00160:全局事务事务长度超过最大值()

ORA-00161:事务分支长度非法(允许的最大长度为)

ORA-00162:外部dbid的长度超过最大值()

ORA-00163: 内部数据库名称长度超过最大值()

ORA-00164: 分布式事务处理中不允许独立事务

ORA-00165: 不允许远程操作执行便携式分布式自动操作异常转换

ORA-00200:无法创建控制文件

ORA-00201:控制文件版本与ORACLE版本不兼容

ORA-00202 :控制文件:''

ORA-00203:使用了错误的控制文件

ORA-00204:读取控制文件时出错(块,#块)

ORA-00205:识别控制文件时出错,请检查警告日志以获取详细信息

ORA-00206:写入控制文件时出错(块,#块)

ORA-00207:控制文件不能在同一个数据库中使用

ORA-00208: 控制文件名数量超出限制

ORA-00209: 控制文件块大小不匹配,请检查详细警告日志

ORA-00210:无法打开指定的控制文件

ORA-00211:控制文件与先前的控制文件不匹配

ORA -00212:块大小小于所需的最小大小(字节)

ORA-00213:控制文件无法重用;原始文件大小为,更多

br/>
ORA-00214:Control 文件 '' 版本与文件 '' 版本不一致

ORA-00215: 至少必须存在一个控制文件

ORA-00216: 迁移时无法调整控制文件大小从 8.0.2

ORA-00217:从 9.0.1 迁移时无法调整控制文件的大小

ORA-00218:控制文件块大小与 DB_BLOCK_SIZE () 不匹配

ORA-00219:请求的控制文件大小超过允许的最大值

ORA-00220:第一个例程未安装控制文件,请检查警告日志以了解详细信息

ORA-00221:写入控制文件时出错

ORA-00222:操作将重用当前安装的控制文件的名称
br/>
ORA-00223 :转换文件无效或版本不正确

ORA-00224:控制文件调整大小尝试使用非法记录类型()

ORA-00225:控制文件的预期大小不同于实际大小

ORA-00226:打开备用控制文件时不允许操作

ORA-00227:控制文件中的检测到损坏的块:(块,#块)

ORA-00228:备用控制文件名长度超过最大长度

ORA-00229:操作不正确允许:挂起将快照控制文件排队

ORA-00230:不允许操作:无法将快照控制文件排队

ORA-00231:快照控制文件未命名

ORA-00232:快照控制文件不存在、已损坏或无法读取

ORA-00233:控制文件副本已损坏或无法读取

ORA -00234:识别或打开快照或复制控制文件时出错

ORA-00235:由于并发更新,控制文件固定表不一致

ORA-00236:不允许快照操作:挂载的控制文件是备份文件

ORA-00237:不允许快照操作:控制文件是新创建的

ORA-00238:该操作将重用属于数据库名称

ORA-00250: Archiver 一部分的文件未启动

ORA-00251:LOG_ARCHIVE_DUPLEX_DEST 不能与字符串相同的目标

ORA-00252:线程上的日志为空,无法存档

ORA-00253: 字符限制为 ,归档目标字符串超出此限制

ORA-00254: 归档控制字符串 '' 时出错

ORA-00255: 归档日志时出错(线程,序列#)

ORA-00256:无法转换存档目标字符串

ORA-00257:存档器错误。仅在发布前进行内部连接

ORA-00258: NOARCHIVELOG 模式下手动归档必须识别日志

ORA-00259: 日志(开启线程)是当前日志,无法归档

ORA-00260:无法找到在线日志序列(线程)

ORA-00261:归档或修改日志(线程)

ORA - 00262:当前日志(线程关闭)无法切换

ORA-00263:线程没有需要归档的记录

ORA-00264:不需要恢复红色

ORA-00265: 需要例行恢复,无法设置 ARCHIVELOG 模式

ORA-00266: 需要存档日志文件名

ORA-00267:归档日志文件名不需要

ORA-00268: 指定的日志文件不存在''

ORA-00269: 指定的日志文件是线程的一部分(不是)

ORA-00270:创建归档日志时出错

ORA-00271:没有要归档的日志

ORA-00272:写入归档日志时出错< br/>
ORA-00273:未记录的直接加载数据介质恢复

ORA-00274:非法恢复选项

ORA-00275:介质恢复已开始< br/>
ORA-00276:指定了 CHANGE 关键字,但未给出更改编号

ORA -00277:UNTIL 恢复标志的选项非法

ORA-00278:此恢复不再需要日志文件''

ORA-00279:线程的更改(构建中)是必需的

ORA-00280:对线程的更改按顺序进行#

ORA-00281: 无法使用调度程序进程执行媒体恢复

ORA-00282:不支持 UPI 调用,请使用 ALTER DATABASE RECOVER

ORA-00283:由于错误而取消恢复会话

ORA-00284:恢复会话仍在进行中

ORA-00285:TIME 未作为字符串常量给出

ORA-00286:没有可用的成员,或成员没有有效数据

ORA-00287:未找到指定的更改编号(在线程中)

ORA-00288:要继续恢复,请键入 ALTER DATABASE RECOVER CONTINUE

ORA-00289:建议:

ORA-00290:操作系统中发生归档错误。请参阅以下错误

ORA-00291:PARALLEL 选项需要数值

ORA-00292:未安装并行恢复功能

ORA- 00293: 控制文件和重做日志不同步

ORA-00294: 无效的归档日志格式标识符''

ORA-00295: 数据文件号无效,必须为1之间

ORA-00296:最大数量已超过 RECOVER DATAFILE LIST 中的文件数 ()

ORA-00297: 必须在 RECOVER DATAFILE START 之前指定 RECOVER DATAFILE LIST

ORA-00298: 超时缺失或无效

ORA-00299:必须对数据文件使用文件级介质恢复

ORA-00300:指定的重做日志块大小非法 - 超出限制< br/>
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: 联机日志线程: ''

ORA-00313: 无法打开日志组成员(线程)

ORA-00314:日志(线程),预期序列号不匹配

ORA-00315:日志(线程)),标题中的线程号错误

ORA-00316:日志(线程),标头中的类型不是日志文件

ORA-00317:标头中的文件类型不是日志文件

ORA-00318:日志(线程),预期文件大小不匹配

ORA-00319:日志(线程)的日志重置状态错误
/>
ORA-00320:无法读取文件头来自日志(线程)

ORA-00321:无法从日志(线程)更新日志文件头

ORA-00322:日志(线程)不是当前副本< br/>
ORA-00323: 线程的当前日志不可用,所有其他日志需要存档

ORA-00324: 日志文件“翻译名称”太长,字符超出限制

ORA-00325:归档线程的日志,标题中的线程#错误

ORA-00326:日志 ORA-00327:日志(线程),实际大小小于要求

ORA-00328:变更结束归档日志,需要稍后更改

ORA-00329:归档日志在开始时已更改,需要更改

ORA-00330:归档日志在结束时已更改,需要更改

ORA-00331:日志版本与 ORACLE 版本不兼容

ORA-00332:归档日志太小 - 可能未完全归档

ORA-00333:重做日志读取块计数错误
/>
ORA-00334: 归档日志: ''

ORA-00335: 在线日志: 没有此编号的日志,日志不存在

ORA-00336: 大小的日志文件中的块数小于最小块数

ORA-00337: 日志文件“”不存在且未指定大小

/>
ORA-00338:日志(线程)比控制文件新

ORA-00339:归档日志不包含任何重做

ORA-00340:在线日志(线程)时进程 I/O 错误

ORA-00341: log (thread), log # error in title

ORA-00342: 归档日志上面在包之前创建了 RESETLOGS

ORA-00343: 错误太多,日志成员已关闭

ORA-00344:无法重新创建联机日志''

ORA-00345:重做日志写入块计数错误

ORA -00346:日志成员标记为 STALE

ORA-00347:日志(线程),预期块大小不匹配

ORA-00348:单进程重做失败;例程必须中止

ORA-00349: 无法获取 '' 的块大小

ORA-00350: 日志(线程)中需要存档 

ORA-00351:恢复到时间无效

ORA-00352:线程的所有日志都需要归档 - 无法启用

ORA-00353:附近的日志损坏块更改时间

ORA-00354:损坏的重做日志块头

ORA-00355:更改编号无序

ORA-00356:不一致更改描述中的长度

ORA-00357: 为日志文件指定的成员过多,最大

ORA-00358:指定成员的文件太多,最大

ORA-00359:日志文件组不存在

ORA-00360:非日志文件成员:

ORA-00361:无法删除最后一个日志成员(组)

ORA-00362:组中的有效日志文件需要成员

ORA-00363:日志不是存档版本

ORA-00364:无法将标头写入新日志成员

ORA-00365:指定的日志不是正确的下一个日志

ORA-00366:日志(线程),文件头中校验和错误

ORA-00367:日志文件头中校验和错误

ORA-00368:重做日志块校验和错误

ORA-00369:线程当前日志不可用,其他日志已被清除

ORA-00370: Rcbchange操作过程中可能会出现死锁

ORA-00371:共享池内存不足

ORA-00372:此时无法修改文件

ORA-00373: 在线日志版本与ORACLE版本不兼容

ORA-00374: 参数 db_​​block_size = 无效;它必须是 的倍数,范围为 [..]

ORA-00375: 无法获取默认 db_block_size

ORA-00376: 此时无法读取文件

ORA-00377:频繁备份文件导致写入操作延迟

ORA-00378:无法创建指定的缓冲池

ORA -00379: 无法在缓冲池中提供 K 块大小的空闲缓冲区

ORA-00380: 无法指定 db_k_cache_size,因为 K 是标准块大小

ORA-00381: 不能使用新旧参数来指定缓冲区高速缓存大小

ORA-00382:不是有效的块大小,有效范围为 [..]

ORA-00383:DEFAULT 高速缓存块大小无法减小到零

ORA-00384:没有足够的内存来增加缓存大小

ORA-00385:无法使用新的缓冲区缓存参数启用超大内存
/>
ORA-00390: 日志(线程)正在被清除,无法成为当前日志

ORA-00391: 所有线程必须同时转换为新的日志格式

ORA-00392: 日志(线程)正在被清除,不允许操作

ORA -00393 :恢复脱机数据文件需要日志(线程)

ORA-00394:尝试归档时重用联机日志

ORA-00395:“克隆”数据库联机日志必须被重命名

ORA-00396:需要回退到单遍恢复的错误

ORA-00397:检测到文件(块)写丢失

ORA -00398:由于重新线程恢复由于配置而中止

ORA-00399:重做日志中的更改描述已损坏

ORA-00400:版本值无效(对于参数)

ORA-00401:此版本不支持参数的值

ORA-00402:版本的数据库更改无法应用于版本

ORA-00403: () 与其他例程不同 ()

ORA-00404: 未找到转换文件: ''

ORA-00405: 兼容类型“”

奥拉-00406:COMPATIBLE 参数需要等于或大于

ORA-00407:从版本滚动升级。到 。不允许

ORA-00408:参数设置为 TRUE
/>
ORA-00409:COMPATIBLE 必须为或更高版本才能使用自动段空间管理

ORA-00436: 无 ORACLE 软件使用权限,请联系 Oracle 寻求帮助
/>
ORA-00437: 无 ORACLE 软件功能使用权限,请联系 Oracle 寻求帮助

/>ORA-00438:未安装选项

ORA-00439:未启用功能:

ORA-00443:后台进程“”未启动

ORA-00444: 后台进程“”启动失败

ORA-00445: 后台进程“”几秒后仍未启动

ORA-00446: 后台进程意外启动 < br/>
ORA-00447: 后台进程发生致命错误

ORA-00448: 后台进程正常终止

ORA-00449: 后台进程“”终止异常并出现错误

ORA-00470: LGWR 进程因错误而终止

ORA-00471:DBWR 进程因错误而终止

ORA-00472:PMON 进程因错误而终止

ORA-00473 : ARCH 进程因错误而终止

ORA-00474:SMON 进程因错误而终止

ORA-00475:TRWR 进程因错误而终止

ORA- 00476:RECO 进程因错误终止

ORA-00477:SNP* 进程因错误终止

ORA-00478:SMON 进程因错误终止

ORA-00480: LCK* 进程因错误终止

ORA-00481: LMON 进程因错误终止

ORA-00482: LMD* 进程因错误终止
< br/>ORA-00483:进程关闭期间异常终止

ORA-00484:LMS*进程因错误而终止

ORA-00485:DIAG进程因错误而终止

ORA-00486:功能不可用

ORA-00568:超出中断处理程序的最大数量

ORA-00574:osndnt:$CANCEL失败(中断)

ORA-00575:osndnt:$QIO失败(发送带外中断)

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:主机名格式错误

ORA-00586:osndnt:LIB$ASN_WTH_MBX失败

ORA-00587:无法连接到远程主机

ORA-00588:来自主机的消息太短

ORA-00589:来自主机的消息数据长度错误

ORA-00590:来自主机的消息类型错误

ORA-00591:写入的字节数错误

ORA-00592:osndnt:$QIO失败(邮箱队列ue )

ORA-00593: osndnt: $DASSGN 失败(网络设备)

ORA-00594: osndnt: $DASSGN 失败(邮箱)

ORA-00595: osndnt: $QIO 失败(接收)

ORA-00596: osndnt: $QIO 失败(发送)

ORA-00597: osndnt: $QIO 失败(邮箱队列)

ORA-00598: osndnt: $QIO IO 失败(邮箱读取)

ORA-00600: 内部错误代码,参数:[]、[]、 []、[]、[]、[]、[]、[]

ORA-00601:清除锁定冲突

ORA-00602:内部编程异常错误
/>
ORA-00603:ORACLE 服务器会话因致命错误而终止

ORA-00604:递归 SQL 层错误

ORA-00606:内部错误代码
/>
ORA-00607:更改数据块时发生内部错误

ORA-00701:无法更改热启动数据库所需的对象
/>
ORA- 00702: Bootstrap 版本 '' 与版本 '' 不一致

ORA-00703: 超过行缓存例程锁的最大数量

ORA-00704: Bootstrap 进程失败

ORA-00705:启动期间状态不一致;请关闭例程后重新启动

ORA-00706:更改文件''格式错误

ORA-00816:错误消息无法转换

ORA-00900:无效的 SQL 语句

ORA-00901:无效的 CREATE 命令

ORA-00902:无效的数据类型

ORA-00903:无效表名

ORA-00904: : 无效标识符
/>
ORA-00905: 缺少关键字

ORA-00906: 缺少左括号
/>
ORA-00907:缺少右括号


ORA-00908:缺少NULL关键字

ORA-00909:参数数量无效

ORA-00910:指定的长度对于数据类型来说太长

ORA-00911:无效字符

ORA-00913:值太多

ORA-00914:缺少 ADD 关键字

ORA-00915:当前不允许对字典进行网络访问表

ORA-00917:缺少逗号

ORA-00918:第 n 列未明确定义

ORA-00919:无效函数

ORA-00920:无效关系运算符

ORA-00921:SQL命令意外结束< br/>
ORA-00922:缺少或无效选项


ORA-00923:未找到预期的 FROM 关键字

ORA-00924:缺少 BY 关键字

ORA-00925:缺少 INTO 关键字


ORA-00926:缺少 VALUES 关键字

ORA-00927:缺少等号

ORA-00928:缺少 SELECT 关键字

ORA-00929:缺少句点

ORA-00930:缺少星号

ORA-00931:缺少标识符< br/>
ORA-00932:不一致的数据类型:已请求但得到

ORA-00933:SQL命令未正确结束

ORA-00934:分组函数这里不允许

ORA-00935:分组函数嵌套太深

ORA-00936:缺少表达式

ORA-00937:非单一分组函数

ORA-00938:函数没有足够的参数

ORA-00939:function 有太多参数

ORA-00940:无效的 ALTER 命令

ORA-00941:缺少集群名称

ORA-00942:表或视图不存在

ORA-00943:簇不存在

ORA-00944:没有足够的簇列数

ORA-00945:指定的聚类列不存在

ORA-00946:缺少 TO 关键字

ORA-00947:值不足

ORA-00948:ALTER CLUSTER 语句不再支持

ORA-00949:对远程数据库的非法引用

ORA-00950:无效的DROP选项

ORA-00951:集群是非空

ORA-00952:缺少 GROUP 关键字

ORA-00953:缺少或无效索引名称

ORA-00954:缺少 IDENTIFIED 关键字< br/>
ORA-00955:名称已被现有对象使用

ORA-00956:缺少或无效的审核选项

ORA-00957:重复的列名

ORA-00958:缺少 CHECK 关键字

ORA-00959:表空间 '' does 不存在

ORA-00960:选择列表中的命名不明确

ORA-00961:错误的日期/间隔值

ORA-00962:组- 太多的by / order-by表达式

ORA-00963:不支持的间隔类型

ORA-00964:表名不在FROM列表中

ORA-00965: 列别名中不允许使用“*”

ORA-00966: 缺少 TABLE 关键字

ORA-00967: 缺少 WHERE 关键字

ORA-00968:缺少 INDEX 关键字

ORA-00969:缺少 ON 关键字

ORA-00970:缺少WITH 关键字

ORA-00971:缺少SET 关键字

ORA-00972:标识符太长

ORA-00973:行估计无效

ORA-00974:无效的 PCTFREE 值(百分比)

ORA-00975:不允许日期+日期

ORA-00976:此处不允许使用LEVEL、PRIOR或ROWNUM

ORA-00977:重复审核选项

ORA-00978:嵌套组函数没有 GROUT BY

ORA-00979:不是 GROUP BY 表达式

ORA-00980:同义词转换不再有效

ORA-00981:无法混合表和系统审核选项

ORA-00982:缺少加号

ORA-00984:此处不允许列出

ORA-00985:无效的程序名称

ORA-00986:缺少或无效的组名称

ORA- 00987:用户名缺失或无效

ORA-00988:密码缺失或无效

ORA-00989:给出的用户名和密码太多

ORA- 00990:权限缺失或无效

ORA-00991:进程仅具有MAC权限

ORA-00992:REVOKE命令格式无效

ORA- 00993:缺少 GRANT 关键字

ORA-00994:缺少 OPTION 关键字

ORA-00995:缺少或无效 synonymIdentification

ORA-00996:连接运算符是||而不是 |

ORA-00997:非法使用 LONG 数据类型

ORA-00998:必须使用列别名来命名该表达式

ORA-00999 :视图名称无效

ORA-01000:最大值超出打开游标的数量

ORA-01001:游标无效

ORA-01002:读取顺序冲突

ORA-01003:未解析语句< br/>
ORA -01004:不支持默认用户名功能;登录被拒绝

ORA-01005:未提供密码;登录被拒绝

ORA-01006:赋值变量不存在

ORA-01007:选择列表中没有变量

ORA-01008:并非全部变量关联

ORA-01009:缺少法定参数

ORA-01010:无效的 OCI 操作

ORA-01011:无法使用版本 7 兼容性与版本 6 服务器通信时的模式

ORA-01012:未登录

ORA-01013:用户请求取消当前操作

ORA-01014: ORACLE 正在关闭

ORA -01015: 循环登录请求

ORA-01016: 该函数只能在读取后调用

ORA-01017: 用户名/密码无效;登录被拒绝
/>
ORA-01018:列n 没有 LONG 数据类型

ORA-01019:无法在用户端分配内存

ORA-01020:未知的上下文状态

ORA -01021:指定的上下文大小无效

ORA-01022:此配置不支持数据库操作

ORA-01023:找不到游标上下文(游标编号无效)

ORA-01024:OCI 调用中的数据类型无效

ORA-01025:UPI 参数超出范围

ORA-01026:多个缓冲区赋值列表中存在大小 > 4000

ORA-01027:数据定义操作期间不允许对变量进行赋值

ORA-01028:内部双工错误

ORA-01029:内部双工错误

ORA-01030:SELECT ...INTO 变量不存在

ORA-01031:权限不足

ORA-01032:没有这样的用户 ID

ORA-01033:ORACLE 正在初始化或关闭

ORA-01034:ORACLE 不可用

ORA-01035: ORACLE 只允许使用 R 的用户ESTICTED SESSION 权限 用法

ORA-01036:非法变量名称/编号

ORA-01037:超出最大游标内存

ORA-01038:无法写入数据库文件版本(使用ORACLE版本)

ORA-01039:查看基础对象的权限不足

ORA-01040:密码中的字符无效;登录被拒绝

ORA-01041:内部错误,hostdef 扩展不存在

ORA-01042:不允许使用打开的游标来分离会话

ORA-01043:用户端内存损坏 []、[]、[]、[]

ORA-01044:缓冲区大小(与变量关联)超出最大限制

ORA-01045: 用户没有创建会话权限;登录被拒绝

ORA-01046: 无法获取空间来扩展上下文区域

ORA-01047: 上述错误发生在 schema=, package=, procedure = Medium
/>
ORA-01048:在给定上下文中找不到指定的过程

ORA-01049:不支持按名称分配在流动的 RPC 中


ORA-01051: 延迟 rpc 缓冲区格式无效

ORA-01052 :未指定所需的目标 LOG_ARCHIVE_DUPLEX_DEST

ORA-01053:无法读取用户存储地址

ORA-01054:无法写入用户存储地址

ORA-01057: 用户退出中引用的 block.field 无效或不明确

ORA-01058: 内部新 Upi 接口错误

ORA-01059: 赋值或之前的语法分析执行

ORA-01060:不允许数组赋值或执行

ORA-01061:无法使用版本7客户端应用程序启动版本8服务器

ORA-01062:无法分配定义缓冲区所需的内存

ORA-01070:服务器使用旧版本的 Oracle

ORA-01071:无法执行不启动 ORACLE 进行操作
/>
ORA-01072: 无法停止 ORACLE;因为ORACLE没有运行

ORA-01073:致命连接错误:无法识别的调用类型

ORA-01074:无法关闭ORACLE;请先在注册会话中注销

ORA-01075:您现在已登录

ORA-01076:尚不支持每个进程多次登录
< br/>ORA-01077:后台进程初始化失败

ORA-01078:处理系统参数失败

ORA-01079:ORALCE数据库未正确创建,操作中止< br/>
ORA-01080: 关闭 ORACLE 时出错

ORA-01081: 无法启动已在运行的 ORACLE - -- 请先关闭

ORA- 01082: 'row_locking=always' 需要事务处理选项

ORA-01083: 参数“”的值与其他示例对应的参数值不一致。

ORA-01084:OCI 调用中的参数无效

ORA-01085:在“..”之前延迟 rpc 错误

ORA-01086:从未创建保留点''

ORA-01087: 可以无法启动 ORALCE --- 现在已登录

ORA-01088:存在活动进程时无法关闭 ORACLE

ORA-01089:正在进行紧急关闭 - 不允许执行任何操作

ORA-01090:正在关闭 - 不允许连接



ORA-01091:强制启动错误

ORA-01092:ORACLE 例程终止。强制断开连接

ORA-01093:仅当没有连接的会话时才允许 ALTER DATABASE CLOSE

ORA-01094:ALTER DATABASE CLOSE 正在进行。不允许连接

ORA-01095:DML语句处理了零行

ORA-01096:程序版本()与例程()不兼容

ORA-01097: 无法在 transactionClose 期间执行 - 首先提交或返回

ORA-01098: 长插入期间出现编程接口错误

ORA-01099: 无法以单次启动进程模式 以 SHARED 模式安装数据库

ORA-01100:数据库已安装

ORA-01101:要创建的数据库当前正在由另一个例程安装

ORA-01102:无法以独占模式安装数据库

ORA-01103:控制文件中的数据库名称“”是not ''

ORA-01104: 控制文件号 () 不等于

ORA-01105: 安装与其他例程的安装不兼容

ORA-01106:卸载前必须关闭数据库

ORA-01107:必须先安装数据库才能执行介质恢复

ORA-01108:文件正在备份或介质恢复过程中

ORA-01109:数据库未打开

ORA-01110:数据文件:''
< br/>ORA-01111:数据文件名未知 - 请重命名以更正文件

ORA-01112:介质恢复未启动

ORA-01113:文件需要介质恢复

ORA-01114:将块写入文件时出现 IO 错误(块#)

ORA-01115:从文件读取块时出现 IO 错误(块#)

ORA-01116:打开数据库文件时出错

ORA-01117:向文件''添加非法块大小:;限制为

ORA-01118:无法添加任何其他数据库文件:超出限制

ORA-01119:创建数据库文件时出错''

ORA -01120:无法删除在线数据库文件

ORA-01121:无法重命名数据库文件 - 文件正在使用或正在恢复

ORA-01122:数据库文件验证失败

ORA-01123: 无法启动在线备份;未启用介质恢复

ORA-01124:无法恢复数据文件 - 文件正在使用或正在恢复

ORA-01125:无法禁用介质恢复 - 文件具有联机备份设置
/>
ORA-01126: 对于此操作,数据库必须以 EXCLUSIVE 模式安装且未打开

ORA-01127: 数据库名称 '' 超出字符limit

ORA-01128:无法启动在线备份 - 文件脱机

ORA-01129:用户默认或临时表空间不存在

ORA-01130:数据库文件版本与ORACLE版本不兼容

ORA-01131:DB_FILES系统参数值超出限制

ORA-01132: 数据库文件名 '' 的长度超出字符限制
/>
ORA-01133: 日志文件名 '' 的长度超出字符限制

/>ORA-01134: 数据库已被另一个例程独立安装

ORA-01135: DML/查询访问的文件脱机

ORA-01136: 指定的文件(块)的大小小于块的原始大小

ORA-01137: 数据文件仍处于离线进程

ORA-01138:数据库必须在此例程中打开或根本不打开

ORA-01139:RESETLOGS 选项仅在不完整的数据库恢复后有效
/>
ORA-01140:无法结束在线备份 - 所有文件均脱机

ORA-01141:重命名数据文件时出错 - 未找到新文件''

ORA-01142:无法结束在线备份 - 备份中没有文件

ORA-01143:无法禁用介质恢复 - 文件需要介质恢复

我将在这里分享关于如何处理Oracle异常。希望以上内容能够对大家有所帮助,能够学到更多的知识。如果您觉得文章不错,可以分享出去,让更多的人看到。

1. 本站所有资源来源于用户上传或网络,仅作为参考研究使用,如有侵权请邮件联系站长!
2. 本站积分货币获取途径以及用途的解读,想在本站混的好,请务必认真阅读!
3. 本站强烈打击盗版/破解等有损他人权益和违法作为,请各位会员支持正版!
4. 编程技术 > 如何处理Oracle异常

用户评论