ToB企服应用市场:ToB评测及商务社交产业平台

标题: oracle异常处理 [打印本页]

作者: 忿忿的泥巴坨    时间: 2023-5-9 10:49
标题: oracle异常处理
序言

最近在工作中遇到这么一个场景:
但是随着时间推移,问题出来了:一部分数据没同步过去。
排查步骤:
排查思路是将从A库中同步到B库的数据都删了,然后手动调用过程,发现全部数据可以正常同步过去,这样就将上面三种情况都排除了。
这就令人很费解了,是哪出问题了呢?最后将问题定位在执行存储过程中,由于某种原因发生了异常,导致数据同步失败。这样看来是存储过程写的不够完善,某些异常没考虑进去。
吸取以上事例教训,下面就来探究下Oracle中异常处理流程
1 异常概念

和其他编程语言一样,用PL/SQL编写的程序,在运行过程中也会出现各种错误,这些错误就是异常。
举个栗子:
  1. declare
  2. v_result number(10) :=0;
  3. begin
  4.     v_result := 10/0;
  5.     dbms_output.put_line('结果是:'||v_result);
  6. end;
复制代码
以上脚本执行时就会发生除数为0的异常
2 异常分类

3 异常处理

3.1 异常处理语法
  1. exception
  2.     when exception1 [or exception2...] then   --异常列表
  3.         statement...                          --异常处理语句
  4.     when exception3 [or exception4...] then   --异常列表
  5.          statement...                         --异常语句
  6.     when others then                        
  7.         statement...
  8. --exception 表示申明异常块部分,它是异常处理部分开始标志
  9. -- where 后面是异常列表
  10. -- then 后面是异常处理语句 也就是发生的异常和异常列表里的异常匹配是,执行的指定语句
  11. -- 可以有多个when
  12. --when others then 是异常处理最后部分,表示如果抛出的异常和前面的都不匹配时执行此处  
复制代码
3.2 预定义异常处理

在oracle中提供一些已经定义好的常用异常,oracle中一共提供了25中预定义异常。
可以根据以下语句查询
  1. select * from dba_source where name='STANDARD' and text like '%EXCEPTION_INIT%'
复制代码
下面是一些常见异常
ExceptionORA ErrorSQL CODEConditionCASE_NOT_FOUNDORA-06592-6592CASE语句时,WHEN字句没有包含必须的条件分支,并且没有ELSE语句,就会触发该异常DATA_NOT_FOUNDORA-01403+100select into 语句没有返回记录就会触发此异常TOO_MANY_ROWSORA-01422-1422select into 语句返回记录多余一条就会触发此异常DUP_VAL_ON_INDEXORA-00001-1当在唯一索引所对应的列上键入重复值时,就会触发该异常VALUE_ERRORORA-06522-06522赋值是,如果变量长度不足以容纳实际数据,则会触发该异常ZERO_DIVIDEORA-01476-01476除数为0时触发异常STORAGE_ERRORORA-06500-06500内存溢出时触发异常TIMEOUT_ON_RESOURCEORA-00051-51等待资源超时时触发异常CURSOR_ALREADY_OPENORA-06511-6511打开一个已经打开的游标时触发异常举个栗子:
  1. declare
  2. v_result number(10) :=0;
  3. begin
  4.    v_result := 10/0;
  5.    dbms_output.put_line('结果是:'||v_result);
  6.    exception
  7.        when ZERO_DIVIDE then
  8.        dbms_output.put_line('除数为0了');
  9. end;
  10. --除数为0时会立即捕获异常,异常和when中匹配时,执行之后语句。避免程序中断
  11. -- **异常匹配是从上到下的**
复制代码
3.3 非预定义异常
  1. oracle 中更多的是非预定义异常,它们只有错误编号和错误描述。而没有名称的异常是不能被捕获的。在oracle中允许开发人员为这样的异常取个名称,使他们能够被异常处理模块捕捉到
复制代码
非预定义异常定义步骤:
  1. --删除指定部门的记录信息,以确保该部门没有员工。
  2. INSERT INTO departments VALUES(50, 'FINANCE', 'CHICAGO');
  3. DECLARE
  4.    v_deptno departments.department_id%TYPE := &deptno;
  5.    deptno_remaining EXCEPTION;    --申明异常
  6.    PRAGMA EXCEPTION_INIT(deptno_remaining, -2292); --把异常名称和错误号关联起来
  7.    /* -2292 是违反一致性约束的错误代码 */
  8. BEGIN
  9.    DELETE FROM departments WHERE department_id = v_deptno;
  10. EXCEPTION
  11.    WHEN deptno_remaining THEN
  12.       DBMS_OUTPUT.PUT_LINE('违反数据完整性约束!');
  13.    WHEN OTHERS THEN
  14.       DBMS_OUTPUT.PUT_LINE(SQLCODE||'---'||SQLERRM);
  15. END;
复制代码
3.4 自定义异常
  1. 用户定义的异常错误是通过显式使用 RAISE 语句来触发。当引发一个异常错误时,控制就转向到 EXCEPTION块异常错误部分,执行错误处理代码。
复制代码
3.4.1 自定义异常处理步骤

举个栗子:
  1. --更新指定员工工资,增加100
  2. DECLARE
  3.    v_empno employees.employee_id%TYPE :=&empno;
  4.    no_result  EXCEPTION;
  5. BEGIN
  6.    UPDATE employees SET salary = salary+100 WHERE employee_id = v_empno;
  7.    IF SQL%NOTFOUND THEN
  8.       RAISE no_result;
  9.    END IF;
  10. EXCEPTION
  11.    WHEN no_result THEN
  12.       DBMS_OUTPUT.PUT_LINE('你的数据更新语句失败了!');
  13.    WHEN OTHERS THEN
  14.       DBMS_OUTPUT.PUT_LINE(SQLCODE||'---'||SQLERRM);
  15. END;
复制代码
4 异常出现位置

4.1 申明部分引发异常错误
  1. 在程序申明部分出现错误,那么该错误就能影响到其他块
复制代码
例如:
  1. DECLARE
  2.     abc number(3):='abc';
  3.     其它语句
  4. BEGIN
  5.     其它语句
  6. EXCEPTION
  7.     WHEN OTHERS THEN
  8.     其它语句
  9. END;
  10. -- 以上例子 由于abc number(3)='abc'; 出错,尽管在EXCEPTION中说明了WHEN OTHERS THEN语句,但WHEN OTHERS THEN也不会被执行。这时就需要如下写法才能捕获异常,在该错误语句块的外部有一个异常错误,则该错误能被抓住
  11. BEGIN
  12.     DECLARE
  13.     abc number(3):='abc';
  14.     其它语句
  15.    BEGIN
  16.     其它语句
  17.    EXCEPTION
  18.     WHEN OTHERS THEN
  19.     其它语句
  20.     END;
  21. EXCEPTION
  22. WHEN OTHERS THEN
  23.     其它语句
  24. END;
复制代码
4.2 执行部分引发异常

5 SQLCODE, SQLERRM异常处理函数
  1.     由于ORACLE 的错信息最大长度是512字节,为了得到完整的错误提示信息,我们可用 SQLERRM和 SUBSTR 函数一起得到错误提示信息。
复制代码
  1. SQLCODE=-100    SQLERRM=’no_data_found ‘
  2. SQLCODE=0       SQLERRM=’normal, successfual completion’
复制代码
常用场景:
  1. -- 1. 将ORACLE错误代码及其信息存入错误代码表
  2. CREATE TABLE errors (errnum NUMBER(4), errmsg VARCHAR2(100));
  3. DECLARE
  4.    err_msg  VARCHAR2(100);
  5. BEGIN
  6.    /*  得到所有 ORACLE 错误信息  */
  7.    FOR err_num IN -100 .. 0 LOOP
  8.       err_msg := SQLERRM(err_num);
  9.       INSERT INTO errors VALUES(err_num, err_msg);
  10.    END LOOP;
  11. END;
  12. DROP TABLE errors;
复制代码
  1. --2. 查询ORACLE错误代码;
  2. BEGIN
  3.    INSERT INTO employees(employee_id, first_name,last_name,hire_date,department_id)
  4.    VALUES(1111, '张','三', SYSDATE, 20);
  5.    DBMS_OUTPUT.PUT_LINE('插入数据记录成功!');
  6.   
  7.    INSERT INTO employees(employee_id, first_name,last_name,hire_date,department_id)
  8.    VALUES(2222, '李','四', SYSDATE, 20);
  9.    DBMS_OUTPUT.PUT_LINE('插入数据记录成功!');
  10. EXCEPTION
  11.    WHEN OTHERS THEN
  12.       DBMS_OUTPUT.PUT_LINE(SQLCODE||'---'||SQLERRM);   --将错误代码和错误信息打印出来
  13. END;
复制代码
  1. --3. 利用ORACLE错误代码,编写异常错误处理代码;
  2. DECLARE
  3.    empno_remaining EXCEPTION;
  4.    PRAGMA EXCEPTION_INIT(empno_remaining, -1);
  5.    /* -1 是违反唯一约束条件的错误代码 */
  6. BEGIN
  7.    INSERT INTO employees(employee_id, first_name,last_name,hire_date,department_id)
  8.    VALUES(3333, '王','五', SYSDATE, 20);
  9.    DBMS_OUTPUT.PUT_LINE('插入数据记录成功!');
  10.   
  11.    INSERT INTO employees(employee_id, first_name,last_name,hire_date,department_id)
  12.    VALUES(3333, '赵','六',SYSDATE, 20);
  13.    DBMS_OUTPUT.PUT_LINE('插入数据记录成功!');
  14. EXCEPTION
  15.    WHEN empno_remaining THEN
  16.       DBMS_OUTPUT.PUT_LINE('违反数据完整性约束!');
  17.    WHEN OTHERS THEN
  18.       DBMS_OUTPUT.PUT_LINE(SQLCODE||'---'||SQLERRM);
  19. END;
复制代码
6 oracle 错误码归纳

errcodeerrORA-00001违反唯一约束条件 (.)ORA-00017请求会话以设置跟踪事件ORA-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标记要删去的会话ORA-00032无效的会话移植口令ORA-00033当前的会话具有空的移植口令ORA-00034无法在当前 PL/SQL 会话中ORA-00035LICENSE_MAX_USERS 不能小于当前用户数ORA-00036超过递归 SQL () 级的最大值ORA-00037无法转换到属于不同服务器组的会话ORA-00038无法创建会话: 服务器组属于其它用户ORA-00050获取入队时操作系统出错ORA-00051等待资源超时ORA-00052超出最大入队资源数 ()ORA-00053超出最大入队数ORA-00054资源正忙,要求指定 NOWAITORA-00055超出 DML 锁的最大数ORA-00056对象 '.' 上的 DDL 锁以不兼容模式挂起ORA-00057超出临时表锁的最大数ORA-00058DB_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-00065FIXED_DATE 的初始化失败ORA-00066LOG_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无法按名称转储变量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-00089ORADEBUG 命令中无效的例程号ORA-00090未能将内存分配给群集数据库 ORADEBUG 命令ORA-00091LARGE_POOL_SIZE 至少必须为ORA-00092LARGE_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-00103无效的网络协议;供调度程序备用ORA-00104检测到死锁;全部公用服务器已锁定等待资源ORA-00105未配置网络协议  的调度机制ORA-00106无法在连接到调度程序时启动/关闭数据库ORA-00107无法连接到 ORACLE 监听器进程ORA-00108无法设置调度程序以同步进行连接ORA-00111由于服务器数目限制在 , 所以没有启动所有服务器ORA-00112仅能创建多达  (最多指定) 个调度程序ORA-00113协议名  过长ORA-00114缺少系统参数 SERVICE_NAMES 的值ORA-00115连接被拒绝;调度程序连接表已满ORA-00116SERVICE_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连接被拒绝;无效的演示文稿ORA-00126连接被拒绝;无效的重复ORA-00127调度进程  不存在ORA-00128此命令需要调度进程名ORA-00129监听程序地址验证失败 ''ORA-00130监听程序地址 '' 无效ORA-00131网络协议不支持注册 ''ORA-00132语法错误或无法解析的网络名称 ''ORA-00150重复的事务处理 IDORA-00151无效的事务处理 IDORA-00152当前会话与请求的会话不匹配ORA-00153XA 库中的内部错误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不能重新使用控制文件;原文件大小为 ,还需ORA-00214控制文件 '' 版本  与文件 '' 版本  不一致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操作将重新使用当前已安装控制文件的名称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未启动存档器ORA-00251LOG_ARCHIVE_DUPLEX_DEST 不能是与字符串  相同的目的地ORA-00252日志  在线程  上为空,无法存档ORA-00253字符限制在  以内,归档目的字符串  超出此限制ORA-00254存档控制字符串 '' 时出错ORA-00255存档日志  (线程 , 序列 # ) 时出错ORA-00256无法翻译归档目的字符串ORA-00257存档器错误。在释放之前仅限于内部连接ORA-00258NOARCHIVELOG 模式下的人工存档必须标识日志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写存档日志  时出错ORA-00273未记录的直接加载数据的介质恢复ORA-00274非法恢复选项ORA-00275已经开始介质恢复ORA-00276CHANGE 关键字已指定但未给出更改编号ORA-00277UNTIL 恢复标志  的非法选项ORA-00278此恢复不再需要日志文件 ''ORA-00279更改  (在  生成) 对于线程  是必需的ORA-00280更改  对于线程  是按序列 #  进行的ORA-00281不能使用调度进程执行介质恢复ORA-00282UPI  调用不被支持,请使用 ALTER DATABASE RECOVERORA-00283恢复会话因错误而取消ORA-00284恢复会话仍在进行ORA-00285TIME 未作为字符串常数给出ORA-00286无可用成员,或成员无有效数据ORA-00287未找到指定的更改编号  (在线程  中)ORA-00288要继续恢复,请键入 ALTER DATABASE RECOVER CONTINUEORA-00289建议:ORA-00290操作系统出现存档错误。请参阅下面的错误ORA-00291PARALLEL 选项要求数字值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指定的重做日志块大小  非法 - 超出限制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日志  (线程 ) 不是当前副本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日志  (线程 ),标题中的日志 #  错误ORA-00342归档日志在上一个 RESETLOGS 之前创建程序包ORA-00343错误过多,已关闭日志成员ORA-00344无法重新创建联机日志 ''ORA-00345重做日志写入块  计数  出错ORA-00346日志成员标记为 STALEORA-00347日志  (线程 ),预计块大小  与  不匹配ORA-00348单一进程重做失败;必须中止例程ORA-00349无法获得 '' 的块大小ORA-00350日志  (线程 ) 中需要归档ORA-00351recover-to 时间无效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-00370Rcbchange 操作过程中可能出现死锁ORA-00371共享池内存不足ORA-00372此时无法修改文件ORA-00373联机日志版本  与 ORACLE 版本  不兼容ORA-00374参数 db_block_size =  无效; 它必须是  的倍数, 范围为 [..]ORA-00375无法获得默认 db_block_sizeORA-00376此时无法读取文件ORA-00377文件  的频繁备份导致写操作延迟ORA-00378无法按指定创建缓冲池ORA-00379缓冲池  中无法提供 K 块大小的空闲缓冲区ORA-00380无法指定 db_k_cache_size, 因为 K 是标准块大小ORA-00381无法将新参数和旧参数同时用于缓冲区高速缓存的大小说明ORA-00382不是有效的块大小, 有效范围为 [..]ORA-00383DEFAULT 高速缓存的块大小  不能减少至零ORA-00384没有足够的内存来增加高速缓存的大小ORA-00385cannot enable Very Large Memory with new buffer cache parametersORA-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兼容类型""ORA-00406COMPATIBLE 参数需要为  或更大ORA-00407不允许从版本 . 到 . 滚动升级ORA-00408参数  设置为 TRUEORA-00409COMPATIBLE 必须是  或更高值才能使用 AUTO SEGMENT SPACE MANAGEMENTORA-00436没有 ORACLE 软件使用权,请与 Oracle 公司联系获得帮助ORA-00437没有 ORACLE 软件功能使用权,请与 Oracle 公司联系获得帮助ORA-00438未安装  选项ORA-00439未启用特性:ORA-00443背景进程 "" 未启动ORA-00444背景进程 "" 启动时失败ORA-00445背景进程 "" 在  秒之后仍没有启动ORA-00446背景进程意外启动ORA-00447背景进程出现致命错误ORA-00448背景进程正常结束ORA-00449背景进程 '' 因错误  异常终止ORA-00470LGWR 进程因错误而终止ORA-00471DBWR 进程因错误而终止ORA-00472PMON 进程因错误而终止ORA-00473ARCH 进程因错误而终止ORA-00474SMON 进程因错误而终止ORA-00475TRWR 进程因错误而终止ORA-00476RECO 进程因错误而终止ORA-00477SNP* 进程因错误而终止ORA-00478SMON 进程由于  错误终止ORA-00480LCK* 进程因错误而终止ORA-00481LMON 进程因错误而终止ORA-00482LMD* 进程因错误而终止ORA-00483关闭进程过程中异常终止ORA-00484LMS* 进程因错误而终止ORA-00485DIAG 进程由于  错误终止ORA-00486功能不可用ORA-00568超出中断处理程序的最大数ORA-00574osndnt: $CANCEL 失败 (中断)ORA-00575osndnt: $QIO 失败 (发送 out-of-band 中断)ORA-00576带内中断协议错误ORA-00577带外中断协议错误ORA-00578重置协议错误ORA-00579osndnt: 服务器收到连接请求格式不正确ORA-00580协议版本不匹配ORA-00581osndnt: 无法分配上下文区域ORA-00582osndnt: 无法撤消分配上下文区域ORA-00583osndnt: $TRNLOG 失败ORA-00584无法关闭连接ORA-00585主机名称格式错误ORA-00586osndnt: LIB$ASN_WTH_MBX 失败ORA-00587无法连接到远程主机ORA-00588来自主机的信息过短ORA-00589来自主机的信息数据长度错误ORA-00590来自主机的信息类型错误ORA-00591写入的字节数错误ORA-00592osndnt: $QIO 失败 (邮箱队列)ORA-00593osndnt: $DASSGN 失败 (网络设备)ORA-00594osndnt: $DASSGN 失败 (邮箱)ORA-00595osndnt: $QIO 失败 (接收)ORA-00596osndnt: $QIO 失败 (发送)ORA-00597osndnt: $QIO 失败 (邮箱队列)ORA-00598osndnt: $QIO IO 失败 (邮箱读取)ORA-00600内部错误代码,参数: [], [], [], [], [], [], [], []ORA-00601清除锁定冲突ORA-00602内部编程异常错误ORA-00603ORACLE 服务器会话因致命错误而终止ORA-00604递归 SQL 层  出现错误ORA-00606内部错误代码ORA-00607当更改数据块时出现内部错误ORA-00701无法改变热启动数据库所需的对象ORA-00702引导程序版本 '' 与版本 '' 不一致ORA-00703超出行高速缓存例程锁的最大数ORA-00704引导程序进程失败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未明确定义列ORA-00919无效函数ORA-00920无效的关系运算符ORA-00921未预期的 SQL 命令结尾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缺少标识ORA-00932不一致的数据类型: 要求  得到的却是ORA-00933SQL 命令未正确结束ORA-00934此处不允许使用分组函数ORA-00935分组函数的嵌套太深ORA-00936缺少表达式ORA-00937非单组分组函数ORA-00938函数没有足够的参数ORA-00939函数的参数过多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 关键字ORA-00955名称已由现有对象使用ORA-00956缺少或无效审计选项ORA-00957列名重复ORA-00958缺少 CHECK 关键字ORA-00959表空间''不存在ORA-00960选择列表中的命名含糊ORA-00961错误的日期/间隔值ORA-00962group-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 或 ROWNUMORA-00977重复的审计选项ORA-00978嵌套分组函数没有 GROUT BYORA-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-00992REVOKE 命令格式无效ORA-00993缺少 GRANT 关键字ORA-00994缺少 OPTION 关键字ORA-00995缺少或无效同义词标识ORA-00996连接运算符是ORA-00997非法使用 LONG 数据类型ORA-00998必须使用列别名命名此表达式ORA-00999无效的视图名ORA-01000超出打开游标的最大数ORA-01001无效的游标ORA-01002读取违反顺序ORA-01003语句未进行语法分析ORA-01004不支持默认用户名特性;登录被拒绝ORA-01005未给出口令;登录被拒绝ORA-01006赋值变量不存在ORA-01007选择列表中没有变量ORA-01008并非所有变量都已关联ORA-01009缺少法定参数ORA-01010无效的 OCI 操作ORA-01011在与第 6 版服务器会话时不能使用第 7 版兼容模式ORA-01012没有登录ORA-01013用户请求取消当前的操作ORA-01014ORACLE 正在关闭过程中ORA-01015循环登录请求ORA-01016此函数仅可以在读取后调用ORA-01017无效的用户名/口令;拒绝登录ORA-01018列不具有 LONG 数据类型ORA-01019无法在用户方分配内存ORA-01020未知的上下文状态ORA-01021指定的上下文大小无效ORA-01022此配置中不支持数据库操作ORA-01023未找到游标上下文 (无效的游标编号)ORA-01024OCI 调用中的数据类型无效ORA-01025UPI 参数超出范围ORA-01026赋值列表中存在多个大小 > 4000 的缓冲区ORA-01027在数据定义操作中不允许对变量赋值ORA-01028内部双工错误ORA-01029内部双工错误ORA-01030SELECT ...INTO 变量不存在ORA-01031权限不足ORA-01032没有这样的用户标识ORA-01033ORACLE 正在初始化或关闭过程中ORA-01034ORACLE 不可用ORA-01035ORACLE 只允许具有 RESTRICTED SESSION 权限的用户使用ORA-01036非法的变量名/编号ORA-01037超出最大游标内存ORA-01038无法写入数据库文件版本  (使用 ORACLE 版本 )ORA-01039视图基本对象的权限不足ORA-01040口令中的字符无效;登录被拒绝ORA-01041内部错误,hostdef 扩展名不存在ORA-01042不允许使用打开游标分离会话ORA-01043用户方内存损坏 [], [], [], []ORA-01044缓冲区大小  (与变量关联) 超出了最大限制ORA-01045用户  没有 CREATE SESSION 权限;登录被拒绝ORA-01046无法获得扩展上下文区域的空间ORA-01047以上错误出现在 schema=, package=, procedure= 中ORA-01048给定的上下文中无法找到指定的过程ORA-01049流动 RPC 中不支持按名称赋值ORA-01050无法获得打开上下文区域的空间ORA-01051延迟 rpc 缓冲区格式无效ORA-01052未指定所需的目的 LOG_ARCHIVE_DUPLEX_DESTORA-01053无法读取用户存储地址ORA-01054无法写入用户存储地址ORA-01057用户出口中引用的 block.field 无效或有歧义ORA-01058内部 New 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尚不支持每个进程的多次登录ORA-01077背景进程初始化失败ORA-01078处理系统参数失败ORA-01079ORALCE 数据库未正确创建,操作中止ORA-01080关闭 ORACLE 时出错ORA-01081无法启动已在运行的 ORACLE --- 请首先关闭ORA-01082'row_locking = always' 要求事务处理处理选项ORA-01083参数 "" 的值与其它例程序的相应参数值不一致。ORA-01084OCI 调用中的参数无效ORA-01085延迟 rpc 到 ".." 之前的错误ORA-01086从未创建保留点 ''ORA-01087不能启动 ORALCE --- 现在已登录ORA-01088不能在存在活动进程时关闭 ORACLEORA-01089正在进行紧急关闭 - 不允许进行任何操作ORA-01090正在进行关闭 --- 不允许连接ORA-01091强行启动出错ORA-01092ORACLE 例程终止。强行断开连接ORA-01093ALTER DATABASE CLOSE 仅允许在没有连接会话时使用ORA-01094ALTER DATABASE CLOSE 正在进行。不允许连接ORA-01095DML 语句处理了零个行ORA-01096程序版本 () 与例程 () 不兼容ORA-01097无法在事务处理过程中关闭 - 首先提交或返回ORA-01098在 Long Insert 过程中出现程序接口错误ORA-01099如果在单进程模式下启动,则无法在 SHARED 模式下安装数据库ORA-01100数据库已安装ORA-01101要创建的数据库当前正由其它例程安装ORA-01102无法在 EXCLUSIVE 模式下安装数据库ORA-01103控制文件中的数据库名 '' 不是 ''ORA-01104控制文件数 () 不等于ORA-01105安装与其它例程的安装不兼容ORA-01106必须在卸下之前关闭数据库ORA-01107必须安装数据库才可以进行介质恢复ORA-01108文件  正处于备份或介质恢复过程中ORA-01109数据库未打开ORA-01110数据文件 : ''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数据库名 '' 超出  个字符的限制ORA-01128无法启动联机备份 - 文件  处于脱机状态ORA-01129用户默认或临时表空间不存在ORA-01130数据库文件版本  与 ORACLE 版本  不兼容ORA-01131DB_FILES 系统参数值  超出限制ORA-01132数据库文件名 '' 的长度超出  个字符的限制ORA-01133日志文件名 '' 的长度超出  个字符的限制ORA-01134数据库已由其它例程独立安装ORA-01135DML/query 访问的文件  处于脱机状态ORA-01136文件  ( 块) 的指定大小小于  块的原大小ORA-01137数据文件  仍处于脱机过程中ORA-01138数据库必须在此例程中打开或根本没有打开ORA-01139RESETLOGS 选项仅在不完全数据库恢复后有效ORA-01140无法结束联机备份 - 所有文件均处于脱机状态ORA-01141重命名数据文件  时出错 - 未找到新文件 ''ORA-01142无法结束联机备份 - 没有文件在备份中ORA-01143不能禁用介质恢复 - 文件  需要介质恢
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4