Oracle错误代码案例总结及解决方案

合集下载

oracle错误ORA-01017问题分析与解决方法

oracle错误ORA-01017问题分析与解决方法

Oracle常见错误 ORA-01017通常表示用户名或密码不正确,但在您的情况下,问题可能与 Oracle 11g 客户端和 Oracle 19c 数据库之间的兼容性有关。

可能的原因用户名或密码错误:首先,确保输入的用户名和密码是正确的。

密码版本兼容性:Oracle 19c 默认使用更高版本的密码加密算法,而 Oracle 11g 客户端可能不支持。

数据库参数配置:某些数据库参数可能需要调整以支持旧版本客户端的连接。

解决方案1. 确认用户名和密码首先,确保您输入的用户名和密码是正确的,并且没有输入错误。

2. 检查密码案例敏感Oracle 11g 和 19c 在处理密码时可能有不同的大小写敏感。

确保密码的大小写与创建用户时设置的密码一致。

3. 调整密码版本兼容Oracle 19c 默认使用 12c 及以上版本的密码加密算法。

为了兼容旧版本客户端,可以调整数据库参数,使其支持旧版本的密码加密算法。

连接到 Oracle 19c 数据库实例:sqlplus / as sysdba检查当前的 SQLNET.ALLOWED_LOGON_VERSION_SERVER 参数:SHOW PARAMETER SQLNET.ALLOWED_LOGON_VERSION_SERVER;如果需要修改参数,可以编辑 sqlnet.ora 文件:vi $ORACLE_HOME/network/admin/sqlnet.ora添加或修改以下参数:SQLNET.ALLOWED_LOGON_VERSION_SERVER=11SQLNET.ALLOWED_LOGON_VERSION_CLIENT=11保存并关闭文件,然后重启数据库监听程序:lsnrctl stoplsnrctl start4. 重新设置用户密码重新设置用户密码可以确保密码使用兼容的加密算法。

连接到 Oracle 19c 数据库实例:sqlplus / as sysdba重新设置用户密码:ALTER USER <username> IDENTIFIED BY <new_password>;5. 检查和调整数据库参数某些数据库参数可能需要调整以支持旧版本客户端的连接。

Oracle错误代码案例总结及解决方案

Oracle错误代码案例总结及解决方案

常见错误:ORA-00001:违反唯一约束条件(主键错误)ORA—00028:无法连接数据库进程ORA—00900:无效sql语句ORA—00904:字段名写错或是建表时最后一个字段有逗号ORA-00907:缺少右括号ORA—00911:无效字符ORA—00917:缺少逗号ORA-00918:未明确定义列ORA-00922:丢失或无效的选项(表名等可能有空格)ORA—00923:未找到FROM关键字ORA—00926:缺少valueORA—00933: SQL命令未正确结束ORA—00936:缺少表达式ORA—00937:不是单组分组函数ORA—00942:表或视图不存在ORA-00947:没有足够的值(一般是插入语句出现的错,插入值的数量与字段不符)ORA-00979:不是group by的表达式ORA—01009:缺少法定参数(eg:sql做参数时,且sql语句为空时,报错)ORA-01098:数据库无法关闭及启动ORA—01400:无法将null值插入ORA—01401:插入的值对于列过大ORA-01476:sql中存在除数为零ORA—01579: 恢复过程中出现写错误ORA—01580: 创建控制备份文件时出错ORA-01581: 尝试使用已分配的回退段() 新区()ORA-01582:无法打开要备份的控制文件ORA—01583: 无法获得要备份的控制文件的块大小ORA-01584:无法获得要备份的控制文件的文件大小ORA-01585: 标识备份文件时出错ORA-01586: 无法打开要备份的目标文件ORA-01587: 复制控制文件的备份文件时出错ORA-01588:要打开数据库则必须使用RESETLOGS 选项ORA-01589: 要打开数据库则必须使用RESETLOGS 或NORESETLOGS 选项ORA-01590:段可用列表数()超出最大数ORA—01591:锁定已被有问题的分配事务处理挂起ORA—01592:将第7 版回退段() 转换为Oracle 8 版格式时出错ORA—01593: 回退段最佳大小(blks) 小于计算的初始大小( blks)ORA—01594: 尝试放回已释放的回退段()区()ORA-01595:释放区() 回退段()时出错ORA—01596: 无法在参数中指定系统ORA-01597:无法改变联机或脱机系统回退段ORA-01598: 回退段''未联机ORA-01599: 无法获得回退段(), 高速缓存空间已满ORA—01600: 至多只有一个””在子句""()中ORA-01601: 子句””()中的存储桶大小非法ORA-01603:子句"”()中的分组大小非法ORA—01604: 子句”"()中的编号范围非法ORA—01605: 子句”"()中缺少编号ORA—01606: gc_files_to_locks 不同于另一已安装例程的参数ORA-01608:无法将回退段’'联机,其状态为()ORA-01609:日志是线程的当前日志—无法删除成员ORA—01610: 使用BACKUP CONTROLFILE 选项的恢复必须已完成ORA-01611: 线程编号无效- 必须介于1 和之间ORA-01612: 线程已经启用ORA—01613:线程只有日志- 要求至少启用2 个日志ORA-01614:线程正忙- 无法启用ORA—01615: 线程已安装—无法禁用ORA-01616: 线程已打开—无法禁用ORA-01617: 无法安装: 不是有效的线程编号ORA-01618: 线程未启用- 无法安装ORA—01619:线程已由另一例程安装ORA-01620: 没有可用于安装的公用线程ORA-01621:数据库打开时无法重命名当前日志的成员ORA—01622: 必须指定线程编号- 没有特定默认值ORA-01623: 日志是线程的当前日志- 无法删除ORA—01624: 线程的紧急恢复需要日志ORA-01625:回退段'’不属于此例程ORA—01626:回退段号''无法处理更多事务处理ORA—01627: 回退段号''未联机ORA—01628: 已达到max # extents ()(回退段)ORA-01629: 已达到max #extents (),此时正在保存表空间的撤消ORA—01630: 表空间中的temp 段达到max #extents()ORA-01631:表。

Oracle的常见错误及解决办法

Oracle的常见错误及解决办法

Oracle的常见错误及解决办法ORA-12528:TNS:listener: all appropriate instances are blocking new connectionsORA-12528问题是因为监听中的服务使⽤了动态服务,实例虽然启动,但没有注册到监听。

实例是通过PMON进程注册到监听上的,⽽PMON进程需要在MOUNT状态下才会启动。

所以造成了上⾯的错误。

解决这个问题,有三种⽅法:1、把监听设置为静态;2、在tnsnames.ora中追加(UR=A);3、重新启动服务;⽅法1、通过修改listener.ora的参数,把listener.ora动态注册设置为静态注册,然后重新启动监听# listener.ora Network Configuration File: $ORACLE_HOME\network\admin\listener.ora# Generated by Oracle configuration tools.LISTENER =(DESCRIPTION_LIST =(DESCRIPTION =(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))(ADDRESS = (PROTOCOL = TCP)(HOST = [IP])(PORT = 1521))))SID_LIST_LISTENER =(SID_LIST =(SID_DESC =(GLOBAL_DBNAME = [DBNAME])(ORACLE_HOME = [$ORACLE_HOME])(SID_NAME = [SID])))静态注册的风险:如果在instance运⾏中,lisener重新启动,就找不到instance了。

静态注册需要先启动lisener,再启动instance。

且静态模式下,lisener status显⽰的是unknown⽅法2、启动到nomount状态,通过修改tnsnames.ora的参数# tnsnames.ora Network Configuration File: $ORACLE_HOME\network\admin\tnsnames.ora# Generated by Oracle configuration tools.SYK =(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = [IP])(PORT = 1521))(CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = SYK)(UR=A)))然后连接上数据库SQL>alter database mount;SQL>alter database open;⽅法3、重启ORACLE或者重启ORACLE服务在oracle帐户下依序执⾏如下命令:sqlplus / as sysdba;//在其它帐户(如root)下执⾏可能会报错(ORA-01031)因为这些帐户没有在dba组中shutdown immediate;startup;oracle实例名: error while loading shared libraries: libskgxp10.so: cannot open shared object file: No such file or directory是环境变量LD_LIBRARY_PATH的问题。

Oracle常见错误及解决方案

Oracle常见错误及解决方案

O r a c l e常见错误及解决方案问题1:Oracle服务器进入PL/SQL Developer时报ora-01033:oracle initialization or shutdown in progress 错误提示,应用系统无法连接Oracle服务。

解决方法如下:⑴进入CMD,执行set ORACLE_SID=fbms,确保连接到正确的SID;⑵运行sqlplus "/as sysdba"SQL>shutdown immediate停止服务SQL>startup启动服务,观察启动时有无数据文件加载报错,并记住出错数据文件标号SQL>shutdown immediate再次停止服务SQL>startup mountSQL> recover datafile 2恢复出错的数据文件SQL>shutdown immediate再次停止服务SQL>startup启动服务,此次正常。

⑶进入PL/SQL Developer检查,没有再提示错误。

问题2:Oracle密码忘记了怎么办?解决方法有很多种,这里讲述以下三种:⑴打开cmd,输入sqlplus /nolog,回车;输入“conn / as sysdba”;输入“alter user sys identified by 新密码”。

注意:新密码最好以字母开头,否则可能出现错误Ora-00988。

有了这个方法后,只要自己对oracle 服务器有管理员权限,Oracle密码忘记了也不用着急,可以随意修改密码。

⑵在命令行执行如下命令:sqlplus "/@服务名as sysdba"然后在sqlplus中运行以上命令即可修改密码:alter user sys identified by 新密码;alter user system identified by 新密码;⑶运行到C盘根目录输入:SET ORACLE_SID = 你的SID名称输入:sqlplus/nolog输入:connect/as sysdba输入:alert user sys identified by sys输入:alert user system identified by system完成以上5步,则密码更改完成,密码是Oracle数据库的初始密码。

oracle最全面的错误疑难解决方案和总结文档

oracle最全面的错误疑难解决方案和总结文档

oracle最全面的错误疑难解决方案和总结文档Ⅰ.oracle itcast本文档对应程序在myeclipse的jdbc/src/下Oracle 安装自动生成sys用户和system用户sys 超级用户具有最高权限具有sysDBA角色,有create database权限该用户默认密码是change_in_installsystem 管理操作员权限也比较大,具有sysoper角色,没有create database权限。

该用户默认密码是manager 这是通过sqlplus客户端连接数据库时有多个实例采用下面DOS命令:sqlplus scott/tiger@zhulin 见2.13 oracle创建数据库实例启动sqlplus,然后登陆数据库出现错误:TNS:协议适配器错误原因有3个:1.监听服务没有启动:services.msc或开始―程序―管理工具―服务,打开服务面板:启动oraclehome92TNSlistener服务2.database instance没有启动:services.msc或开始―程序―管理工具―服务启动oralceserviceXXX,XXX就是你databaseSID 如zhulin 3.注册表问题:regedit.msc 进入HKEY_LOCAL_*****\*****E\ORACLE\KEY_OraDb11g_home1 下的ORACLE_SID值修改为zhulin 你的全局数据库名字你的数据库SID即可。

ORACLE用SYS和SYSTEM默认密码登录提示ORA-01017:invalid username/password;logond denied该怎么解决?解决办法:有可能是你在建数据库的时候, 修改了默认的密码而自己又忘记你可再重新修改过来sqlplus / as sysdbaalter user system identified by manager; alter user sys identified by manager;或者改成其他的你自己容易记住的默认scott用户密码是tiger1.oralce解锁步骤先使用system登录然后输入alter user scott account unlock;//解锁scott账号SQL语句必须带分号!!!!!!!!!!!!!最好都分号结束2.oralce开发工具sqlpulsw和sqlus工具在开始→程序→oracle oradb_home10g→application development→sqlplus 或在运行栏输入sqlpluspl/sql developer 这款软件用的很多第三方软件需要单独安装企业管理器(web) 首先保证相关服务启动即oracleDBconsole+实例名启动在浏览器中输入http://ip:1158//em ip是指你的具体ip地址或者你的机器名1158是端口一般情况下这个服务是不启动很不安全3.oracle常用sql plus命令(1)请使用scott用户登录oracle数据库实例,然后切换为身份为system 简单使用conn 用户名/密码登录后,使用conn[ect] 用户名/密码@网络[as sysdba/sysoper] (2)show user 显示当前用户名(3) 断开连接disc[onnect](4)exit 断开连接和退出sqlplus窗口(5) 修改密码(前提是system或sys用户) passw[ord] 基本用法password 用户名如果给自己修改密码则可以不带用户名如果给别人修改密码则需要带用户名(6) 交互命令可以替代变量的值select * from emp where job=”job”; (7)edit 用于编辑脚本(文本) SQLedit d:\(8)spool 把屏幕上显示的记录,保存到文件中spool onspool d:/bak.sql 查询语句spool off4.oracle用户管理(1)创建用户只有具有DBA权限才能创建比如system sys 基本用法:create user 用户名identified by 密码举例:create user xiaoqiang identified by hao20XX年*****[oracle要求用户密码不能用数字开头]后面我将密码修改为了20XX年*****?为什么创建的用户无法登陆这是因为oracle 刚刚创建的用户是没有任何权限,需要管理员给用户分配适应的权限,才能够登陆grant create session to xiaoqiang //会话权限(1)权限系统权限:和数据库管理相关的权限:create session;create table;create index;create view;create sequence;create trigger 对象权限:和用户操作数据对象相关的权限:update;insert;delete;select(2)角色预定义角色:把常用的权限集中起来,形成角色(套餐) 比如dba connect resource 三种角色自定义角色:自己定义套餐(3)方案(schema)在一个数据库实例下:当一个用户,创建好后,如果该用户创建了任意一个数据对象(表或触发器等),这时我们的DBMS就会创建一个对应的方案与该用户对应,并且该方案名字和用户名一致。

oracle报错处理 案例

oracle报错处理 案例

oracle报错处理案例Oracle数据库在运行过程中可能会遇到各种错误,下面列举几个报错案例以及相应的解决思路:1、ORA-00701: 这个错误通常与内部错误或者核心对象有关。

根据2021年的信息,处理ORA-00701的一个解决方案是将数据库启动到升级模式(upgrade mode)进行修复,或者配置特定的事件(如event 38003),以便让Oracle跳过某些验证步骤。

在某些情况下,可能需要重建受影响的核心对象。

2、数据库无法打开并开始crash recovery:当数据库因异常关闭(如服务器断电)后,重启时可能会出现类似"alter database open... crash recovery"的情况。

此时,Oracle会自动尝试执行恢复过程来确保数据一致性。

DBA需要监控redo日志应用情况和归档日志状态,确保所有必需的redo已成功应用,以完成数据库的正常恢复开放。

3、ORA-00235:这个错误在官方文档中没有明确记录,但根据历史资料中的案例,它可能与备份或RMAN操作期间的同步恢复目录有关。

解决方案可能涉及检查并协调任何冲突的RMAN任务、确保恢复目录的一致性,或者重新同步恢复目录信息。

4、服务器断电导致的数据恢复:在服务器意外断电后,Oracle数据库可能无法正常启动。

在这种情况下,数据恢复工作包括检查物理文件的完整性、评估控制文件、联机重做日志文件和数据文件的状态,并使用RMAN或其他工具进行介质恢复或不完全恢复操作。

如果数据文件损坏严重,可能还需要从最近的有效备份和归档日志中恢复。

在实际处理Oracle数据库错误时,关键在于理解错误的具体含义、分析错误产生的上下文环境,并按照Oracle官方提供的最佳实践和建议步骤进行操作。

同时,维护详细的日志记录和定期备份也是避免数据丢失和快速恢复服务的关键措施。

Oracle错误代码案例总结及解决方案

Oracle错误代码案例总结及解决方案
6 / 13
个人收集整理-ZQ
: 小时与日中的秒发生冲突 : 小时中的分与日中的秒发生冲突 : 分中的秒与日中的秒发生冲突 : 指定月份的日期无效 : 输入值对于日期格式不够长 : (全)年度值必须介于 和 之间,且不为 : 季度值必须介于 和 之间月份中的周值必须介于 和 之间 : 周中的日无效
: 月份中日的值必须介于 和当月最后一日之间 (判断字符型能否转换成日期型)
: 年度中的日值必须介于 和 之间(闰年为 ) : 小时值必须介于 和 之间 : 小时值必须介于 和 之间 : 分钟值必须介于 和 之间 : 秒值必须介于 和 之间 : 日中的秒值必须介于 和 之间 : 日期必须介于 和 之间 : 要求 . 或 . : 要求 . 或 . : 无效的时区 : 在要求输入数字处找到非数字字符 : 在要求输入字母处找到非字母字符 : 年度中的周值必须介于 和 之间 : 文字与格式字符串不匹配 : 数字值与格式项目的长度不匹配: 年度不支持当前日历 : 日期超出当前日历的范围 : 无效的纪元 : 日期时间类无效 : 间隔无效 : 间隔的前导精度太小 : 保留以供将来使用 : 间隔或日期时间不是相互可比较的 : 秒数必须少于 : 保留以供将来使用 : 间隔的前导精度太小 : 时区小时必须在 和 之间 : 时区分钟必须在 和 之间 : 年份必须不少于 : 内部缓冲区的字符串太长 : 在日期时间或间隔中没有找到指定的字段 : 字段必须在 和 之间 : 零点几秒必须在 和 之间
个人收集整理-ZQ
Oracle 错误代码案例总结及解决方案
常见错误: :违反唯一约束条件(主键错误) :无法连接数据库进程:无效语句 :字段名写错或是建表时最后一个字段有逗号 :缺少右括号 :无效字符:缺少逗号 :未明确定义列 :丢失或无效的选项(表名等可能有空格) :未找到关键字:缺少 : 命令未正确结束 :缺少表达式 :不是单组分组函数 :表或视图不存在:没有足够的值(一般是插入语句出现的错,插入值的数量 与字段不符) :不是 的表达式 :缺少法定参数(:做参数时,且语句为空时,报错) :数据库无法关闭及启动 :无法将值插入 :插入的值对于列过大 :中存在除数为零

Oracle常见错误及解决方法

Oracle常见错误及解决方法

Oracle常见错误及解决⽅法1、ORA-12541:TNS:没有监听器原因:没有启动监听器或者监听器损坏。

如果是前者,使⽤命令net start OracleOraHome81TNSListener(名字可能有出⼊)即可;如果是后者,则使⽤“Net8 Configuration Assistant”⼯具向导之“监听程序配置”增加⼀个监听器即可(基本不⽤写任何信息,⼀路OK。

在添加之前可能需要把所有的监听器先删除!)2、ORA-12500:TNS:监听程序⽆法启动专⽤服务器进程或 ORA-12560:TNS:协议适配器错误原因:ORACLE的数据库服务没有启动。

使⽤命令net start ORACLESERVICEORADB(ORADB为数据库名字)即可。

如果仍没有解决,请继续向下看。

3、如果数据库服务启动失败,则很有可能是其注册表项值损坏,最好的做法是以下两步:1)ORADIM -DELETE -SID oradb 删除数据库服务项2)ORADIM -NEW -SID oradb 新增数据库服务项注:这个过程中如果出错,就重启计算机!4、ORA-12154:TNS:能解析服务名原因:ORACLE的⽹络服务名没有正确配置。

请使⽤“Net8 Configuration Assistant”⼯具向导之“本地⽹络服务名配置”配置TNS即可。

如果仍没有解决,请继续向下看。

5、ORA-1034 :TNS:ORACLE不可⽤原因:ORACLE的数据库服务正确启动,但是数据库没有打开!使⽤命令:1)svrmgrl 启动服务管理器2)connect internal 以internal⾝份登陆3)startup 打开数据库6、ORA-12560:TNS:协议适配器错误(顽固性的)原因:未知。

解决:必杀技--打开“Windows任务管理器”,杀死ORACLE.exe及ORADIM.exe进程,书写⾃⼰的ora_startup.bat,执⾏之!7、ORA-12638:⾝份证明检索失败原因:服务端开了防⽕墙,且使⽤了本地操作系统认证解决:修改sqlnet.ora⽂件,1)NTS改为NONE,oracle将采⽤⼝令⽂件认证(此时 remote_login_passwordfile=exclusive)如connect /as sysdba 登录,后报错RA-01031: insufficient privileges,实际上是要求你输⼊sysdba的⽤户名和密码SQLNET.AUTHENTICATION_SERVICES= (NONE)2)修改查找连接的字符串顺序:tnsnames.ora,直接使⽤简单连接字符串,使⽤计算机名称NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT, HOSTNAME)8、ArcSDE数据被锁定后的解锁⽅法描述:(1)删除所选对象失败锁定请求与已有锁定冲突。

ORACLE常见错误代码的分析与解决

ORACLE常见错误代码的分析与解决

ORACLE常见错误代码的分析与解决在使用ORACLE的过程过,我们会经常遇到一些ORACLE产生的错误,对于初学者而言,这些错误可能有点模糊,而且可能一时不知怎么去处理产生的这些错误,本人就使用中出现比较频繁的错误代码一一做出分析,希望能够帮助你找到一个合理解决这些错误的方法,同时也希望你能够提出你的不同看法。

毕竟作为一种交流的手段,个人意见难免过于偏颇,而且也必定存在着不足,出错之处在所难免。

写这篇文章的目的就是想通过相互之间的交流共同促进,共同进步。

ORA-01650:unable to extend rollback segment NAME by NUM intablespace NAME产生原因:上述ORACLE错误为回滚段表空间不足引起的,这也是ORACLE数据管理员最常见的ORACLE错误信息。

当用户在做一个非常庞大的数据操作导致现有回滚段的不足,使可分配用的回滚段表空间已满,无法再进行分配,就会出现上述的错误。

解决方式:使用“ALTER TABLESPACE tablespace_name ADD DATAFILE filename SIZE size_of_file”命令向指定的数据增加表空间,根据具体的情况可以增加一个或多个表空间。

当然这与还与你主机上的裸盘设备有关,如果你主机的裸盘设备已经没有多余的使用空间,建议你不要轻意的增加回滚段表空间的大小,可使用下列的语句先查询一下剩余的tablespace空间有多少:Select user_name,sql_text from V$open_cursor where user_name=’<user_name>’;如果多余的空间比较多,就可以适当追加一个大的回滚段给表空间使用,从而避免上述的错误。

你也可以用以下语句来检测一下rollback segment的竞争状况:Select class,count from V$waitstat where calss in(‘system undo header’,’system undo block’,’undo header’,’undo block’);和Select sum(value) from V$sysstat where name in (‘db_block_gets’,’consistents gets’);如果任何一个class in count/sum(value)大于1%,就应该考虑增加rollback segment。

Oracle常见错误代码的分析与解决

Oracle常见错误代码的分析与解决

Oracle常见错误代码的分析与解决作者:chensheng 发文时间:2005.06.15在使用ORACLE的过程中,我们会经常遇到一些ORACLE产生的错误,对于初学者而言,这些错误可能有点模糊,而且可能一时不知怎么去处理产生的这些错误,本人就使用中出现比较频繁的错误代码一一做出分析,希望能够帮助你找到一个合理解决这些错误的方法,同时也希望你能够提出你的不同看法。

毕竟作为一种交流的手段,个人意见难免过于偏颇,而且也必定存在着不足,出错之处在所难免。

写这篇文章的目的就是想通过相互之间的交流共同促进,共同进步。

ORA-01650: unable to extend rollback segment NAME by NUM intablespace NAME产生原因:上述ORACLE错误为回滚段表空间不足引起的,这也是ORACLE数据管理员最常见的ORACLE错误信息。

当用户在做一个非常庞大的数据操作导致现有回滚段的不足,使可分配用的回滚段表空间已满,无法再进行分配,就会出现上述的错误。

解决方法:使用“ALTER TABLESPACE tablespace_name ADD DATAFILE filename SIZE size_of_file”命令向指定的数据增加表空间,根据具体情况可以增加一个或多个表空间。

当然这与还与你主机上的裸盘设备有关,如果你主机的裸盘设备已经没有多余的使用空间,建议你不要轻意增加回滚段表空间的大小,可使用下列语句先查询一下剩余的tablespace空间有多少:select user_name,sql_text from V$open_cursor where user_name='';如果多余的空间比较多,就可以适当追加一个大的回滚段给表空间使用,从而避免上述的错误。

你也可以用以下语句来检测一下rollback segment的竞争状况:和如果任何一个class in count/sum(value)大于1%,就应该考虑增加rollback segment。

Oracle错误代码整理总结

Oracle错误代码整理总结

Oracle错误代码整理总结常见错误:ORA-00001:违反唯⼀约束条件(主键错误)ORA-00028:⽆法连接数据库进程ORA-00900:⽆效sql语句ORA-00904:字段名写错或是建表时最后⼀个字段有逗号ORA-00907:缺少右括号ORA-00911:⽆效字符ORA-00917:缺少逗号ORA-00918:未明确定义列ORA-00922:丢失或⽆效的选项(表名等可能有空格)ORA-00923:未找到FROM关键字ORA-00926:缺少valueORA-00933: SQL命令未正确结束ORA-00936:缺少表达式ORA-00937:不是单组分组函数ORA-00942:表或视图不存在ORA-00947:没有⾜够的值(⼀般是插⼊语句出现的错,插⼊值的数量与字段不符)ORA-00979:不是group by的表达式ORA-01009:缺少法定参数(eg:sql做参数时,且sql语句为空时,报错)ORA-01098:数据库⽆法关闭及启动ORA-01400:⽆法将null值插⼊ORA-01401:插⼊的值对于列过⼤ORA-01476:sql中存在除数为零ORA-01579: 恢复过程中出现写错误ORA-01580: 创建控制备份⽂件时出错ORA-01581: 尝试使⽤已分配的回退段 () 新区 ()ORA-01582: ⽆法打开要备份的控制⽂件ORA-01583: ⽆法获得要备份的控制⽂件的块⼤⼩ORA-01584: ⽆法获得要备份的控制⽂件的⽂件⼤⼩ORA-01585: 标识备份⽂件时出错ORA-01586: ⽆法打开要备份的⽬标⽂件ORA-01587: 复制控制⽂件的备份⽂件时出错ORA-01588: 要打开数据库则必须使⽤ RESETLOGS 选项ORA-01589: 要打开数据库则必须使⽤ RESETLOGS 或 NORESETLOGS 选项ORA-01590: 段可⽤列表数 () 超出最⼤数ORA-01591: 锁定已被有问题的分配事务处理挂起ORA-01592: 将第 7 版回退段 () 转换为 Oracle 8 版格式时出错ORA-01593: 回退段最佳⼤⼩ ( blks) ⼩于计算的初始⼤⼩ ( blks) ORA-01594: 尝试放回已释放的回退段 () 区 ()ORA-01595: 释放区 () 回退段 () 时出错ORA-01596: ⽆法在参数中指定系统ORA-01597: ⽆法改变联机或脱机系统回退段ORA-01598: 回退段''未联机ORA-01599: ⽆法获得回退段 (), ⾼速缓存空间已满ORA-01600: ⾄多只有⼀个""在⼦句""()中ORA-01601: ⼦句""()中的存储桶⼤⼩⾮法ORA-01603: ⼦句""()中的分组⼤⼩⾮法ORA-01604: ⼦句""()中的编号范围⾮法ORA-01605: ⼦句""()中缺少编号ORA-01606: gc_files_to_locks 不同于另⼀已安装例程的参数ORA-01608: ⽆法将回退段''联机,其状态为 ()ORA-01609: ⽇志是线程的当前⽇志 - ⽆法删除成员ORA-01610: 使⽤ BACKUP CONTROLFILE 选项的恢复必须已完成ORA-01611: 线程编号⽆效 - 必须介于 1 和之间ORA-01612: 线程已经启⽤ORA-01613: 线程只有⽇志 - 要求⾄少启⽤ 2 个⽇志ORA-01614: 线程正忙 - ⽆法启⽤ORA-01615: 线程已安装 - ⽆法禁⽤ORA-01616: 线程已打开 - ⽆法禁⽤ORA-01617: ⽆法安装: 不是有效的线程编号ORA-01618: 线程未启⽤ - ⽆法安装ORA-01619: 线程已由另⼀例程安装ORA-01620: 没有可⽤于安装的公⽤线程ORA-01621: 数据库打开时⽆法重命名当前⽇志的成员ORA-01622: 必须指定线程编号 - 没有特定默认值ORA-01623: ⽇志是线程的当前⽇志 - ⽆法删除ORA-01624: 线程的紧急恢复需要⽇志ORA-01625: 回退段''不属于此例程ORA-01626: 回退段号''⽆法处理更多事务处理ORA-01627: 回退段号''未联机ORA-01628: 已达到 max # extents ()(回退段)ORA-01629: 已达到 max # extents (),此时正在保存表空间的撤消ORA-01630: 表空间中的 temp 段达到 max # extents()ORA-01631: 表.达到 max # extents ()ORA-01632: 索引.达到 max # extents ()ORA-01633: 此操作需要 Real Application Clusters 选件ORA- 01634: 回退段号''即将脱机ORA-01635: 指定的回退段编号 '' 不可⽤ORA-01636: 回退段''已联机ORA-01637: 回退段''正被另⼀例程 (#) 使⽤ORA-01638: 参数不允许 ORACLE 版本装载群集数据库ORA-01640: ⽆法将活动事务处理的表空间设置为只读ORA-01641: 表空间''未联机- ⽆法添加数据⽂件ORA-01642: 只读表空间''⽆需开始备份ORA-01643: 系统表空间⽆法设置为只读ORA-01644: 表空间''已经是只读ORA-01645: 上次尝试设置读写已完成⼀半ORA-01646: 表空间''不是只读 - ⽆法设置为读写ORA-01647: 表空间''是只读,⽆法在其中分配空间ORA-01648: ⽇志是禁⽤线程的当前⽇志ORA-01649: 不允许进⾏备份控制⽂件操作ORA-01650: 回退段⽆法通过(在表空间中)扩展ORA-01651: ⽆法通过(在表空间中)扩展保存撤消段ORA-01652: ⽆法通过(在表空间中)扩展 temp 段ORA-01653: 表.⽆法通过(在表空间中)扩展ORA-01654: 索引.⽆法通过(在表空间中)扩展ORA-01655: 群集 . ⽆法通过 (在表空间中) 扩展ORA-01656: 最⼤区数 () 已在群集 . 中达到ORA-01657: ⽆效的 SHRINK 选项值ORA-01658: ⽆法为表空间中的段创建 INITIAL 区ORA-01659: ⽆法分配超出的 MINEXTENTS(在表空间中)ORA-01660: 表空间''已是永久性ORA-01661: 表空间''已是临时性ORA-01662: 表空间''⾮空且⽆法设置为暂时性ORA-01663: 表空间''的内容不断变动ORA-01664: 扩展排序段的事务处理已终⽌ORA-01665: 控制⽂件不是⼀个备⽤控制⽂件ORA-01666: 控制⽂件⽤于备⽤数据库ORA-01667: ⽆法添加任何其它表空间: 超出限制ORA-01668: 对于数据⽂件的脱机,备⽤数据库要求使⽤ DROP 选项ORA-01669: 备⽤数据库控制⽂件不⼀致ORA-01670: 备⽤数据库恢复需要新数据⽂件ORA-01671: 控制⽂件是备份⽂件,⽆法设置备⽤控制⽂件ORA-01672: 控制⽂件可能缺少⽂件或具有额外⽂件ORA-01673: 未标识数据⽂件ORA-01674: 数据⽂件是⼀个旧的原型⽽⾮当前⽂件ORA-01675: max_commit_propagation_delay 与其它例程不⼀致ORA-01676: ''的备⽤⽂件名转换超出的最⼤长度ORA-01677: 备⽤⽂件名转换参数不同于其它例程ORA-01678: 参数必须是⼀对样式字符串和取代字符串ORA-01679: 数据库必须以 EXCLUSIVE 安装且未打开以激活ORA-01680: ⽆法通过(在表空间中)扩展 LOB 段ORA-01681: max # extents () 已在表空间中的 LOB 段达到ORA-01682: 只读 DB ⽆法在表空间中分配临时空间ORA-01683: 索引.分区⽆法通过(在表空间中)扩展ORA-01684: max # extents () 已在表.分区中达到ORA-01685: max # extents () 已在索引.分区中达到ORA-01686: max # files () 对于表空间已达到ORA-01687: 表空间''的指定记录属性与现有属性相同ORA-01688: 表.分区⽆法通过(在表空间中)扩展ORA-01689: ⼦句""()中出现语法错误ORA-01690: 排序区太⼩ORA-01691: Lob 段.⽆法通过(在表空间中)扩展ORA-01692: Lob 段.分区⽆法通过(在表空间中)扩展ORA-01693: max # extents () 已在 lob 段.中达到ORA-01694: max # extents () 已在 lob 段.分区中达到ORA-01695: 将回退段转换为版本 8.0.2 时出错ORA-01696: 控制⽂件不是 '克隆' 控制⽂件ORA-01697: 控制⽂件⽤于 '克隆' 数据库ORA-01698: '克隆' 数据库仅可以具有 SYSTEM 联机回退段ORA-01699: 正在导⼊表空间''以⽤于时间点恢复ORA-01700: 列表中的⽤户名重复ORA-01701: 此处不允许有群集ORA-01702: 此处不允许有视图ORA-01703: 缺少 SYNONYM 关键字ORA-01704: ⽂字字符串过长ORA-01705: ⽆法在关联列中指定外部连接ORA-01706: ⽤户函数的结果值过⼤ORA-01707: 缺少 LIST 关键字ORA-01708: 需要 ACCESS 或 SESSIONORA-01709: 程序不存在ORA-01710: 缺少 OF 关键字ORA-01711: 列出的权限重复ORA-01712: 您不能授予不具有的权限ORA-01713: 该权限的 GRANT OPTION 不存在ORA-01714: 执⾏⽤户函数时出错ORA-01715: UNIQUE 不可以与簇索引⼀起使⽤ORA-01716: NOSORT 不可以与簇索引⼀起使⽤ORA-01717: seccta: 访问已过时的模式标记⽆效ORA-01718: NOAUDIT 不允许 BY ACCESS | SESSION ⼦句ORA-01719: OR 或 IN 操作数中不允许外部连接运算符 (+)ORA-01720: 授权选项对于'.'不存在ORA-01721: USERENV(COMMITSCN) 在事务处理中调⽤了多次ORA-01722: ⽆效数字(⽐如字段类型为number型、插⼊的值中却有字母)ORA-01723: 不允许长度为 0 的列ORA-01724: 浮点(数)精确度超出范围(1 到 126)ORA-01725: 此处不允许 USERENV('COMMITSCN')ORA-01726: 此处不允许有表ORA-01727: 数字精度说明符超出范围(1 到 38)ORA-01728: 数字标度说明符超出范围(-84 到 127)ORA-01729: 需要数据库链接名ORA-01730: 指定的列名数⽆效ORA-01731: 出现循环的视图定义ORA-01732: 此视图的数据操纵操作⾮法ORA-01733: 此处不允许虚拟列ORA-01734: ⾮法的参数 - EXTENT MIN ⾼于 EXTENT MAXORA-01735: ⾮法的 ALTER TABLE 选项ORA-01736: 需要 [NOT] SUCCESSFULORA-01737: 有效模式: [ROW] SHARE, [[SHARE] ROW] EXCLUSIVE, SHARE UPDATE ORA-01738: 缺少 IN 关键字ORA-01739: 缺少 MODE 关键字ORA-01740: 标识中缺少双引号ORA-01741: ⾮法的零长度标识ORA-01742: 备注错误终⽌ORA-01743: 仅能编制纯函数的索引ORA-01744: 不合理的 INTOORA-01745: ⽆效的主机/赋值变量名ORA-01746: 此处不允许指⽰符变量ORA-01747: ⽆效的⽤户.表.列,表.列,或列规格ORA-01748: 此处只允许简单的列名ORA-01749: ⽤户不可以⾃/⾄⾃⼰ GRANT/REVOKE 权限ORA-01750: UPDATE/REFERENCES 仅可以从整个表⽽不能按列 REVOKEORA-01751: ⽆效的转储撤消选项ORA-01752: 不能从没有⼀个键值保存表的视图中删除ORA-01753: 列定义与聚簇列定义不兼容ORA-01754: 表只能包含⼀个 LONG 类型的列ORA-01755: 必须指定区编号或块编号ORA-01756: 括号内的字符串没有正确结束ORA-01757: 必须指定对象编号ORA-01758: 要添加法定 (NOT NULL) 列,则表必须为空ORA-01759: 未正确定义⽤户函数ORA-01760: 函数的参数⾮法ORA-01761: DML 操作与连结中的唯⼀表不对应ORA-01762: vopdrv: FROM 中没有视图查询块ORA-01763: 更新或删除涉及到外部连结表ORA-01764: 连结的新更新值不能保证为唯⼀ORA-01765: 不允许指定表的所有者名ORA-01766: 此上下⽂中不允许有字典表ORA-01767: UPDATE ...SET 表达式必须是⼦查询ORA-01768: 数字字符串过长ORA-01769: 重复的 CLUSTER 选项说明ORA-01770: CREATE CLUSTER 命令中不允许有 CLUSTER 选项ORA-01771: 选项对聚簇表⾮法ORA-01772: 必须指定 LEVEL 的值(⽆效数字,插⼊的值有字母)ORA-01773: 此 CERATE TABLE 中没有指定列的数据类型ORA-01774: 转储撤消选项指定了多次ORA-01775: 同义词的循环嵌套链ORA-01776: ⽆法通过连接视图修改多个基表ORA-01777: 此系统中不允许 WITH GRANT OPTIONORA-01778: 超出最⼤⼦查询的嵌套层ORA-01779: ⽆法修改与⾮键值保存表对应的列ORA-01780: 要求⽂字字符串ORA-01781: UNRECOVERABLE 不能指定没有 AS SELECTORA-01782: 不能为群集或聚簇表指定 UNRECOVERABLEORA-01783: 只可以指定 RECOVERABLE 或 UNRECOVERABLE ⼦句ORA-01784: 不能指定 RECOVERABLE 具有禁⽤的数据库介质恢复ORA-01785: ORDER BY 项必须是 SELECT-list 表达式的数⽬ORA- 01786: 此查询表达式不允许 FOR UPDATEORA-01787: 每个查询块只允许有⼀个⼦句ORA-01788: 此查询块中要求 CONNECT BY ⼦句ORA-01789: 查询块具有不正确的结果列数(不能创建唯⼀索引,发现重复记录)ORA-01790: 表达式必须具有与对应表达式相同的数据类型ORA-01791: 不是 SELECTed 表达式ORA-01792: 表或视图中的最⼤列数为 1000ORA-01793: 索引列的最⼤数为 32ORA-01794: 群集列的最⼤数⽬为 32ORA-01795: 列表中的最⼤表达式数为 1000ORA-01796: 此运算符不能与列表⼀起使⽤ORA-01797: 此运算符后⾯必须跟 ANY 或 ALLORA-01798: 缺少 EXCEPTION 关键字ORA-01799: 列不可以外部连接到⼦查询ORA-01800: ⽇期格式中的⽂字过长以致⽆法处理ORA-01801: ⽇期格式对于内部缓冲区过长ORA-01802: Julian ⽇期超出范围ORA-01803: ⽆法获得⽇期/时间ORA-01804: 时区信息⽆法初始化ORA-01810: 格式代码出现两次ORA-01811: Julian ⽇期导致年度中的⽇⽆法使⽤ORA-01812: 只可以指定⼀次年度ORA-01813: 只可以指定⼀次⼩时ORA-01814: AM/PM 因使⽤ A.M./P.M. ⽽发⽣冲突ORA-01815: BC/AD 因使⽤ B.C./A.D. ⽽发⽣冲突ORA-01816: 只可以指定⼀次⽉份(⽂字与格式字符串不匹配。

oracle报错及解决办法

oracle报错及解决办法

从现在开始,oracle错误全征集!2007-1-1201102, 00000, "cannot mount database in EXCLUSIVE mode"// *Cause: Some other instance has the database mounted exclusive or shared.// *Action: Shutdown other instance or mount in a compatible mode当你启动数据库遇到1102报错时,之前的数据库的down操作一般都不是正常完成的,或由于一些异常使Oracle在操作系统中残留一些内存结构,Pmon等一几个进程依然存在等原因使Oracle误认为Instance依然在运行着,所以库就没有启动,具体说来大体原因有如下几个:1、pmon、smon、lwgw及dbwr这些后台进程依然存在着2、Oracle开辟的共享内存没有释放掉3、"lk<sid>" and "sgadef<sid>.dbf"这两个用于锁内存的文件存在着。

三、解决问题知道了原因,解决起来就简单多了,办法如下:1、看一下"lk<sid>" and "sgadef<sid>.dbf"这两个文件是不是存在着,如果存在将其删掉。

oracle$cd $ORACLE_HOME/dbsoracle$ls -l sgadef<sid>.dbf如果存在删掉它oracle$rm sgadef<sid>.dbforacle$ls -l lk<sid>如果存在删掉它oracle$rm lk<sid>2、看是不是有后台进程存在了oracle$ps -ef | grep ora_ | grep $ORACLE_SID如果有pmon这些后台进程的残留,kill -9掉它oracle$kill -9 pid3、看一下oracle的共享内存段及信号集(semaphores)是不是还存在着1)清共享内存段oracle$ipcs -m --显示一下,看owner是Oracle用户的oracle$ipcrm -m <Shared_Memory_ID>2)清信号集oracle$ipcs -s --显示一下,看owner是Oracle用户的oracle$ipcrm -s <Semaphore_ID>2007-1-23(TimesTen)802: Data store space exhausted6221: Temporary data partition free space insufficient to allocate 64664 bytes of memoryThe command failed.增加tempsize,在odbc配置文件2007-1-24(TimesTen)6003: Lock request denied because of time-outDetails: Tran 27.9 (pid 24720) wants W lock on table ETUSER.BILLINFO. But tran 17.1 (pid 24621) has it in IX (request was IX). Holder SQL (DELETE FROM ETUSER.BILLINFO WHERE InteractId = ? AND Guid = ? AND FuncId = ?;)IX锁,用命令ttXactAdmin -xactIdRollback 27.15 -connstr "dsn=pps;uid=etuser;pwd=tttttt";无济于事,因为又会生成新的transaction。

ORACLE错误码及解决方法

ORACLE错误码及解决方法

以下内容均以错误码,错误名,错误原因,修改建议形式介绍。

ORA-00903 无效的表名试图在不存在的表中创建的索引。

设置正确的表名。

ORA-00904 无效的标识符试图在不存在的列中创建的索引。

检查表中的列名,并且确定应该使用的列名。

ORA-01408 已经索引过的列表试图创建索引,而带有相同顺序的列集合已经存在。

确保列具有正确的顺序,如果索引已经存在,就不需要再次创建该索引了。

ORA-00959 表空间已经存在试图在不存在的表空间中创建索引。

使用DBA_TABLESPACES或者USER_TABLESPACES视图来找出正确的表空间名称。

ORA-01418 指定的索引不存在试图删除不存在的索引。

检查ALL_INDEXES 视图来确定要删除的索引的实际名称。

ORA-01631,ORA-01632 索引中可以达到的最大的区号索引扩展超出了maxextents所设置的值,扩展操作将会失败。

这时需要增大索引的maxextents设置值或者使用更大的initial和next设置值来重新创建索引。

ORA-01467 排序键太长数据库会遇到排序操作的问题。

这些问题可能是由于给过多的列排序造成的,或者可能是由于使用过多的组函数所造成的也有可能是由于ORACLE数据库自身运行的错误所造成的。

应该使用ORDER BY子句来减少列的数目,这是因为一此排序操作受限于数据库的块大小。

需要注意的是,这个错误与sort_area_size无关。

ORA-01031 权限不够创建索引的权限不正确。

如果在除自己模式外的另一个模式中创建索引,则需要确保拥有create any index的权限;如果创建基于函数的索引,则需要确保拥有query rewrite的权限。

ORA-01654 不能表空间中扩展对象"数据试图向所列出的索引中添加额外的区,而该操作执行失败,可能产生的原因是:1.表空间中的空闲空间已用尽2.在表空间中没有足够的相邻数据文件存在3.Pctincrease设置的值不正确解决办法包括向表空间添加空间或者为索引重新设置next 参数值"。

Oracle错误代码案例总结及解决方案

Oracle错误代码案例总结及解决方案

Oracle错误代码案例总结及解决方案随着Oracle数据库的使用,难免会遇到一些错误代码。

本文将介绍一些常见的Oracle错误代码以及解决方案。

这个错误通常是由于输入的用户名或密码不正确造成的。

解决办法是验证用户名和密码是否正确,并确保数据库实例启动。

这个错误通常是由于在SQL查询中引用了一个不存在的列或表名造成的。

解决办法是检查查询中的列名或表名是否正确,如果需要,可以使用引号将其括起来。

这个错误通常是由于连接描述符无法被解析造成的。

解决办法是检查tnsnames.ora文件中的连接描述符是否正确,并确保listener服务正在运行。

这个错误通常是由于在数值比较中使用了无效的字符造成的。

解决办法是检查数据类型是否正确,并确保传入的值是有效的数字。

这个错误通常是由于SQL语句缺少了必要的结束符号造成的。

解决办法是确保每条SQL语句以分号结尾,并检查语法是否正确。

这个错误通常是由于插入或更新操作违反了表的完整性约束条件造成的。

解决办法是确保插入或更新的值符合表的约束条件,并确保触发器、外键等相关对象正确配置。

这个错误通常是由于在更新语句的THEN子句中没有包含所有列造成的。

解决办法是确保更新语句中的THEN子句包含所有需要更新的列。

这个错误通常是由于在SQL语句中缺少需要的表达式造成的。

解决办法是确保SQL语句中的所有操作数都是有效的,并检查语法是否正确。

这个错误通常是由于插入或更新操作违反了UNIQUE约束条件造成的。

解决办法是确保插入或更新的值不会违反UNIQUE约束条件,并确保索引、触发器等相关对象正确配置。

这个错误通常是由于读取的数据已被其他会话修改或删除造成的。

解决办法是增加undo表空间的大小,或调整事务隔离级别以减少读取之间的时间差。

总结:本文介绍了一些常见的Oracle错误代码以及解决方案,包括无效的用户名/密码、无效的标识符、无法解析指定的连接标识符、无效数字、SQL命令未正确结束、违反完整性约束条件、缺失表达式、UNIQUE约束条件违背和快照过旧等。

oracle中常出现的错误信息及解决方案

oracle中常出现的错误信息及解决方案

oracle中常出现的错误信息及解决方案Oracle中常出现的错误信息及解决方案错误信息一:ORA-00001 违反唯一约束条件最常见的问题原因是:主键序列化问题,即ORACLE表主键ID突然从已经存在的ID值开始自动生成,导致违反主键唯一性约束;解决方案,修改序列值,将序列最小值值设置的大一些。

如果在修改的时候出现违反唯一约束,说明你对主键值进行修改时出现重复,或者没加where条件。

错误信息二:oracle ORA-01745: 无效的主机/绑定变量名最常见的原因:sql语句中语法错误太多,例:多写了一个冒号或逗号,或者变量名称使用了oracle关键字解决方案:审查sql语句,更改为正确的sql语句。

错误信息三:ORA-01460: 转换请求无法实现或不合理常见原因有一下几种:1.读入到数据库中的字符过长无法实现。

解决方案:将字符串(只有4000)类型改为clob类型2.客户端和服务端字符集不一致。

解决方案:step1、通过执行select * from V$NLS_PARAMETERS查看服务端字符集PARAMETER VALUENLS_LANGUAGE AMERICANNLS_TERRITORY AMERICANLS_CURRENCY $NLS_ISO_CURRENCY AMERICANLS_NUMERIC_CHARACTERS .,NLS_CALENDAR GREGORIANNLS_DATE_FORMAT DD-MON-RRNLS_DATE_LANGUAGE AMERICANNLS_CHARACTERSET ZHS32GB18030NLS_SORT BINARYNLS_TIME_FORMAT HH.MI.SSXFF AMNLS_TIMESTAMP_FORMAT DD-MON-RR HH.MI.SSXFF AM NLS_TIME_TZ_FORMAT HH.MI.SSXFF AM TZRNLS_TIMESTAMP_TZ_FORMAT DD-MON-RR HH.MI.SSXFF AM TZRNLS_DUAL_CURRENCY $NLS_NCHAR_CHARACTERSET UTF8NLS_COMP BINARYNLS_LENGTH_SEMANTICS BYTENLS_NCHAR_CONV_EXCP FALSEstep2、通过regedit修改注册表(仅讨论windows版)进行客户端的字符集,位置\HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOME0\NLS _LANG修改为[NLS_LANGUAGE ]_[NLS_ISO_CURRENCY]_[NLS_CHARAC TERSET],如上面的的服务器,应该修改为:AMERICAN_AMERICA.ZHS32GB18030。

oracle-00031原理

oracle-00031原理

Oracle是世界上领先的企业级数据库管理系统,被广泛应用于企业的信息管理和数据处理中。

其中,Oracle-00031错误是一个常见的数据库错误,本文将深入探讨Oracle-00031错误的产生原理及解决方法。

一、Oracle-00031错误的产生原因1.1 表空间不足Oracle数据库中的表空间是用来存储表和索引数据的逻辑结构,如果表空间不足,数据库就无法正常存储数据,从而导致Oracle-00031错误的产生。

1.2 数据库连接失败当数据库连接失败时,用户无法正常访问数据库中的数据,这也可能导致Oracle-00031错误的出现。

1.3 数据文件损坏数据文件是Oracle数据库中用来存储实际数据的物理文件,如果数据文件损坏或丢失,数据库将无法正常读取数据,从而引发Oracle-00031错误。

1.4 日志文件满数据库的日志文件用来记录数据库的操作日志,当日志文件满时,数据库就无法继续记录新的操作日志,从而导致Oracle-00031错误的产生。

二、解决Oracle-00031错误的方法2.1 扩充表空间当出现表空间不足的情况时,可以通过扩充表空间的方式解决这一问题。

可以通过 ALTER TABLESPACE 命令来扩充表空间的大小,使其能够满足数据库存储数据的需求。

2.2 修复数据文件如果数据文件损坏或丢失,可以通过使用 RMAN 或者恢复数据库备份文件的方式来修复数据文件,保障数据库的正常运行。

2.3 清理日志文件当日志文件满时,可以通过定期清理日志文件的方式来避免日志文件满的情况发生。

可以通过设置自动日志文件清理策略,定期清理过期日志文件,保证数据库的正常运行。

2.4 重新连接数据库当数据库连接失败时,可以尝试重新连接数据库,或者检查网络连接,确保数据库可以正常访问。

三、结论通过以上分析可以看出,Oracle-00031错误通常是由于表空间不足、数据库连接失败、数据文件损坏、日志文件满等原因引起的。

Oracle错误代码详解及解决方式

Oracle错误代码详解及解决方式

Oracle错误代码详解及解决方式ORA-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-00035: LICENSE_MAX_USERS 不能小于当前用户数ORA-00036: 超过递归 SQL () 级的最大值ORA-00037: 无法转换到属于不同服务器组的会话ORA-00038: 无法创建会话: 服务器组属于其它用户ORA-00050: 获取入队时操作系统出错ORA-00051: 等待资源超时说明:如果Oracle在等待资源时出现超时错误,会触发此异常。

ORA-00052: 超出最大入队资源数 ()ORA-00053: 超出最大入队数ORA-00054: 资源正忙,要求指定 NOWAIT英文解析:resource busy and acquire with NOWAIT specified 错误解析:表被锁住了,要不等待表解锁,要不就去kill了它。

Oracle_ORA一些错误整理

Oracle_ORA一些错误整理

1、ORA-12560: TNS: 协议适配器错误场景:在cmd窗口输入:sqlplus "/as sysdba"想打开数据库时报的错;原因:没有启动Oracle服务器;解决:WIN+R,跳出运行窗口,输入"services.msc",打开服务窗口;找到OracleServiceORACLE服务,查看是否为启动,右键启动即可。

2、ORA-12541:TNS:no listener场景:用pl/sql developer客户端连接数据库;原因:监听器没有启动;解决:打开服务,启动OracleOraDB12Home1TNSListener。

3、ORA-28547:connection to server failed,probable Oracle Net admin error 场景:将监听器配置文件:listener.ora中的SID_NAME 更改后导致的;原因:多数是因为navicat本地的OCI版本与Oracle服务器器不符造成的;解决:将SID_NAME修改为原来的名称。

4、ORA-01438因为插入的数值大于所在的列的最大允许精度。

5、ORA-12899字符值大于此列指定的允许精度6、ORA-00942:表或视图不存在表或试图不存在7、ORA-01400: 无法将NULL 插入("SCOTT"."ITEMS"."ITEMNAME")因向表中插入数据时,主键/约束的列为空。

8、ORA-00001: 违反唯一约束条件(SCOTT.PK_ITEMS)因想表中插入数据时,某列设置了唯一约束,插入的值,表中已经存在了。

9、ORA-01017: 用户名/口令无效; 登录被拒绝有可能用户名或者密码错误10、ORA-01507有可能是关系数据库后,启动的时候没有加载数据库,如:startup nomount就是启动实例不加载数据库的11、ORA-01034: ORACLE not available数据库处于关闭状态。

oracle基础~报错汇总与解决办法

oracle基础~报错汇总与解决办法

oracle基础~报错汇总与解决办法1 错误代码: ora-27101 ora-01034 shard memory realm does not exit错误分析: 此错误是不能连接oracle服务器的提⽰,代表oracle服务整体异常,重启oracle服务能恢复正常,再进⾏memory_target调整,降低配置(内存不够⽤ 11G) 就能进⾏恢复了2 错误代码 ORA-00600: internal error code, arguments: [ktbsdp2], [18446744073709551615], [], [], [], [], [], [], [], [], [], [],分析:1 根据错误获取致命错误事务位置和 object 具体对象2 select object_name,owner from dba_objects where object_id='object_id' ; 获取对应的表名3 此表进⾏重建,然后将数据插⼊总结1 定期进⾏打补丁升级修复漏洞可能导致ora-006002 热点表IO 读写过⼤,当IO读写达到零界点的时候是可能导致表损坏的。

如果热点SQL或热点表没有索引,这是⼤忌,⼀般情况需要创建索引3 错误代码 ora-00845 MEMORY_TARGET not supported on this system错误分析在Oracle 11g中如果采⽤AMM内存管理,那么当MEMORY_TARGET的值⼤于/dev/shm的时候,就会报ORA-00845: MEMORY_TARGET not supported on this system错误,解决办法增加/dev/shm⼤⼩,在redhat系列系统中,/dev/shm的默认值是系统总内存的⼀半修改/etc/fstab 磁盘挂载相关。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

常见错误:ORA-00001:违反唯一约束条件(主键错误)ORA-00028:无法连接数据库进程ORA-00900:无效sql语句ORA-00904:字段名写错或是建表时最后一个字段有逗号ORA-00907:缺少右括号ORA-00911:无效字符ORA-00917:缺少逗号ORA-00918:未明确定义列ORA-00922:丢失或无效的选项(表名等可能有空格)ORA-00923:未找到FROM关键字ORA-00926:缺少valueORA-00933: SQL命令未正确结束ORA-00936:缺少表达式ORA-00937:不是单组分组函数ORA-00942:表或视图不存在ORA-00947:没有足够的值(一般是插入语句出现的错,插入值的数量与字段不符)ORA-00979:不是group by的表达式ORA-01009:缺少法定参数(eg:sql做参数时,且sql语句为空时,报错)ORA-01098:数据库无法关闭及启动ORA-01400:无法将null值插入ORA-01401:插入的值对于列过大ORA-01476:sql中存在除数为零ORA-01579: 恢复过程中出现写错误ORA-01580: 创建控制备份文件时出错ORA-01581: 尝试使用已分配的回退段() 新区()ORA-01582: 无法打开要备份的控制文件ORA-01583: 无法获得要备份的控制文件的块大小ORA-01584: 无法获得要备份的控制文件的文件大小ORA-01585: 标识备份文件时出错ORA-01586: 无法打开要备份的目标文件ORA-01587: 复制控制文件的备份文件时出错ORA-01588: 要打开数据库则必须使用RESETLOGS 选项ORA-01589: 要打开数据库则必须使用RESETLOGS 或NORESETLOGS 选项ORA-01590: 段可用列表数() 超出最大数ORA-01591: 锁定已被有问题的分配事务处理挂起ORA-01592: 将第7 版回退段() 转换为Oracle 8 版格式时出错ORA-01593: 回退段最佳大小( blks) 小于计算的初始大小( blks)ORA-01594: 尝试放回已释放的回退段() 区()ORA-01595: 释放区() 回退段() 时出错ORA-01596: 无法在参数中指定系统ORA-01597: 无法改变联机或脱机系统回退段ORA-01598: 回退段''未联机ORA-01599: 无法获得回退段(), 高速缓存空间已满ORA-01600: 至多只有一个""在子句""()中ORA-01601: 子句""()中的存储桶大小非法ORA-01603: 子句""()中的分组大小非法ORA-01604: 子句""()中的编号范围非法ORA-01605: 子句""()中缺少编号ORA-01606: gc_files_to_locks 不同于另一已安装例程的参数ORA-01608: 无法将回退段''联机,其状态为()ORA-01609: 日志是线程的当前日志- 无法删除成员ORA-01610: 使用BACKUP CONTROLFILE 选项的恢复必须已完成ORA-01611: 线程编号无效- 必须介于1 和之间ORA-01612: 线程已经启用ORA-01613: 线程只有日志- 要求至少启用2 个日志ORA-01614: 线程正忙- 无法启用ORA-01615: 线程已安装- 无法禁用ORA-01616: 线程已打开- 无法禁用ORA-01617: 无法安装: 不是有效的线程编号ORA-01618: 线程未启用- 无法安装ORA-01619: 线程已由另一例程安装ORA-01620: 没有可用于安装的公用线程ORA-01621: 数据库打开时无法重命名当前日志的成员ORA-01622: 必须指定线程编号- 没有特定默认值ORA-01623: 日志是线程的当前日志- 无法删除ORA-01624: 线程的紧急恢复需要日志ORA-01625: 回退段''不属于此例程ORA-01626: 回退段号''无法处理更多事务处理ORA-01627: 回退段号''未联机ORA-01628: 已达到max # extents ()(回退段)ORA-01629: 已达到max # extents (),此时正在保存表空间的撤消ORA-01630: 表空间中的temp 段达到max # extents()ORA-01631: 表.达到max # extents ()ORA-01632: 索引.达到max # extents ()ORA-01633: 此操作需要Real Application Clusters 选件ORA- 01634: 回退段号''即将脱机ORA-01635: 指定的回退段编号'' 不可用ORA-01636: 回退段''已联机ORA-01637: 回退段''正被另一例程(#) 使用ORA-01638: 参数不允许ORACLE 版本装载群集数据库ORA-01640: 无法将活动事务处理的表空间设置为只读ORA-01641: 表空间''未联机- 无法添加数据文件ORA-01642: 只读表空间''无需开始备份ORA-01643: 系统表空间无法设置为只读ORA-01644: 表空间''已经是只读ORA-01645: 上次尝试设置读写已完成一半ORA-01646: 表空间''不是只读- 无法设置为读写ORA-01647: 表空间''是只读,无法在其中分配空间ORA-01648: 日志是禁用线程的当前日志ORA-01649: 不允许进行备份控制文件操作ORA-01650: 回退段无法通过(在表空间中)扩展ORA-01651: 无法通过(在表空间中)扩展保存撤消段ORA-01652: 无法通过(在表空间中)扩展temp 段ORA-01653: 表.无法通过(在表空间中)扩展ORA-01654: 索引.无法通过(在表空间中)扩展ORA-01655: 群集. 无法通过 (在表空间中) 扩展ORA-01656: 最大区数() 已在群集. 中达到ORA-01657: 无效的SHRINK 选项值ORA-01658: 无法为表空间中的段创建INITIAL 区ORA-01659: 无法分配超出的MINEXTENTS(在表空间中)ORA-01660: 表空间''已是永久性ORA-01661: 表空间''已是临时性ORA-01662: 表空间''非空且无法设置为暂时性ORA-01663: 表空间''的内容不断变动ORA-01664: 扩展排序段的事务处理已终止ORA-01665: 控制文件不是一个备用控制文件ORA-01666: 控制文件用于备用数据库ORA-01667: 无法添加任何其它表空间: 超出限制ORA-01668: 对于数据文件的脱机,备用数据库要求使用DROP 选项ORA-01669: 备用数据库控制文件不一致ORA-01670: 备用数据库恢复需要新数据文件ORA-01671: 控制文件是备份文件,无法设置备用控制文件ORA-01672: 控制文件可能缺少文件或具有额外文件ORA-01673: 未标识数据文件ORA-01674: 数据文件是一个旧的原型而非当前文件ORA-01675: max_commit_propagation_delay 与其它例程不一致ORA-01676: ''的备用文件名转换超出的最大长度ORA-01677: 备用文件名转换参数不同于其它例程ORA-01678: 参数必须是一对样式字符串和取代字符串ORA-01679: 数据库必须以EXCLUSIVE 安装且未打开以激活ORA-01680: 无法通过(在表空间中)扩展LOB 段ORA-01681: max # extents () 已在表空间中的LOB 段达到ORA-01682: 只读DB 无法在表空间中分配临时空间ORA-01683: 索引.分区无法通过(在表空间中)扩展ORA-01684: max # extents () 已在表.分区中达到ORA-01685: max # extents () 已在索引.分区中达到ORA-01686: max # files () 对于表空间已达到ORA-01687: 表空间''的指定记录属性与现有属性相同ORA-01688: 表.分区无法通过(在表空间中)扩展ORA-01689: 子句""()中出现语法错误ORA-01690: 排序区太小ORA-01691: Lob 段.无法通过(在表空间中)扩展ORA-01692: Lob 段.分区无法通过(在表空间中)扩展ORA-01693: max # extents () 已在lob 段.中达到ORA-01694: max # extents () 已在lob 段.分区中达到ORA-01695: 将回退段转换为版本8.0.2 时出错ORA-01696: 控制文件不是'克隆' 控制文件ORA-01697: 控制文件用于'克隆' 数据库ORA-01698: '克隆' 数据库仅可以具有SYSTEM 联机回退段ORA-01699: 正在导入表空间''以用于时间点恢复ORA-01700: 列表中的用户名重复ORA-01701: 此处不允许有群集ORA-01702: 此处不允许有视图ORA-01703: 缺少SYNONYM 关键字ORA-01704: 文字字符串过长ORA-01705: 无法在关联列中指定外部连接ORA-01706: 用户函数的结果值过大ORA-01707: 缺少LIST 关键字ORA-01708: 需要ACCESS 或SESSIONORA-01709: 程序不存在ORA-01710: 缺少OF 关键字ORA-01711: 列出的权限重复ORA-01712: 您不能授予不具有的权限ORA-01713: 该权限的GRANT OPTION 不存在ORA-01714: 执行用户函数时出错ORA-01715: UNIQUE 不可以与簇索引一起使用ORA-01716: NOSORT 不可以与簇索引一起使用ORA-01717: seccta: 访问已过时的模式标记无效ORA-01718: NOAUDIT 不允许BY ACCESS | SESSION 子句ORA-01719: OR 或IN 操作数中不允许外部连接运算符(+)ORA-01720: 授权选项对于'.'不存在ORA-01721: USERENV(COMMITSCN) 在事务处理中调用了多次ORA-01722: 无效数字(比如字段类型为number型、插入的值中却有字母)ORA-01723: 不允许长度为0 的列ORA-01724: 浮点(数)精确度超出范围(1 到126)ORA-01725: 此处不允许USERENV('COMMITSCN')ORA-01726: 此处不允许有表ORA-01727: 数字精度说明符超出范围(1 到38)ORA-01728: 数字标度说明符超出范围(-84 到127)ORA-01729: 需要数据库链接名ORA-01730: 指定的列名数无效ORA-01731: 出现循环的视图定义ORA-01732: 此视图的数据操纵操作非法ORA-01733: 此处不允许虚拟列ORA-01734: 非法的参数- EXTENT MIN 高于EXTENT MAXORA-01735: 非法的ALTER TABLE 选项ORA-01736: 需要[NOT] SUCCESSFULORA-01737: 有效模式: [ROW] SHARE, [[SHARE] ROW] EXCLUSIVE, SHARE UPDATE ORA-01738: 缺少IN 关键字ORA-01739: 缺少MODE 关键字ORA-01740: 标识中缺少双引号ORA-01741: 非法的零长度标识ORA-01742: 备注错误终止ORA-01743: 仅能编制纯函数的索引ORA-01744: 不合理的INTOORA-01745: 无效的主机/赋值变量名ORA-01746: 此处不允许指示符变量ORA-01747: 无效的用户.表.列,表.列,或列规格ORA-01748: 此处只允许简单的列名ORA-01749: 用户不可以自/至自己GRANT/REVOKE 权限ORA-01750: UPDATE/REFERENCES 仅可以从整个表而不能按列REVOKEORA-01751: 无效的转储撤消选项ORA-01752: 不能从没有一个键值保存表的视图中删除ORA-01753: 列定义与聚簇列定义不兼容ORA-01754: 表只能包含一个LONG 类型的列ORA-01755: 必须指定区编号或块编号ORA-01756: 括号内的字符串没有正确结束ORA-01757: 必须指定对象编号ORA-01758: 要添加法定(NOT NULL) 列,则表必须为空ORA-01759: 未正确定义用户函数ORA-01760: 函数的参数非法ORA-01761: DML 操作与连结中的唯一表不对应ORA-01762: vopdrv: FROM 中没有视图查询块ORA-01763: 更新或删除涉及到外部连结表ORA-01764: 连结的新更新值不能保证为唯一ORA-01765: 不允许指定表的所有者名ORA-01766: 此上下文中不允许有字典表ORA-01767: UPDATE ...SET 表达式必须是子查询ORA-01768: 数字字符串过长ORA-01769: 重复的CLUSTER 选项说明ORA-01770: CREATE CLUSTER 命令中不允许有CLUSTER 选项ORA-01771: 选项对聚簇表非法ORA-01772: 必须指定LEVEL 的值(无效数字,插入的值有字母)ORA-01773: 此CERATE TABLE 中没有指定列的数据类型ORA-01774: 转储撤消选项指定了多次ORA-01775: 同义词的循环嵌套链ORA-01776: 无法通过连接视图修改多个基表ORA-01777: 此系统中不允许WITH GRANT OPTIONORA-01778: 超出最大子查询的嵌套层ORA-01779: 无法修改与非键值保存表对应的列ORA-01780: 要求文字字符串ORA-01781: UNRECOVERABLE 不能指定没有AS SELECTORA-01782: 不能为群集或聚簇表指定UNRECOVERABLEORA-01783: 只可以指定RECOVERABLE 或UNRECOVERABLE 子句ORA-01784: 不能指定RECOVERABLE 具有禁用的数据库介质恢复ORA-01785: ORDER BY 项必须是SELECT-list 表达式的数目ORA- 01786: 此查询表达式不允许FOR UPDATEORA-01787: 每个查询块只允许有一个子句ORA-01788: 此查询块中要求CONNECT BY 子句ORA-01789: 查询块具有不正确的结果列数(不能创建唯一索引,发现重复记录)ORA-01790: 表达式必须具有与对应表达式相同的数据类型ORA-01791: 不是SELECTed 表达式ORA-01792: 表或视图中的最大列数为1000ORA-01793: 索引列的最大数为32ORA-01794: 群集列的最大数目为32ORA-01795: 列表中的最大表达式数为1000ORA-01796: 此运算符不能与列表一起使用ORA-01797: 此运算符后面必须跟ANY 或ALLORA-01798: 缺少EXCEPTION 关键字ORA-01799: 列不可以外部连接到子查询ORA-01800: 日期格式中的文字过长以致无法处理ORA-01801: 日期格式对于内部缓冲区过长ORA-01802: Julian 日期超出范围ORA-01803: 无法获得日期/时间ORA-01804: 时区信息无法初始化ORA-01810: 格式代码出现两次ORA-01811: Julian 日期导致年度中的日无法使用ORA-01812: 只可以指定一次年度ORA-01813: 只可以指定一次小时ORA-01814: AM/PM 因使用A.M./P.M. 而发生冲突ORA-01815: BC/AD 因使用B.C./A.D. 而发生冲突ORA-01816: 只可以指定一次月份(文字与格式字符串不匹配。

相关文档
最新文档