搜档网
当前位置:搜档网 › oracle错误码12899

oracle错误码12899

oracle错误码12899
oracle错误码12899

ORACLE数据库ORA-12899错误的解决方法

2013-05-21 18:46 36人阅读评论(0) 收藏举报

出现ORA-12899,是字符集引起的,中文在UTF-8中占3个字节,ZHS16GBK中占2个字节,而源dmp文件字符集是ZHS16GBK库里倒出来的数据,现在要导入到目标字符集为UTF-8的库里,所以会出现

ORA-12899,其实只要修改一下ORACLE 的字符集就可以很好的解决这个问题;但是在修改字符集的时候,我发现,我把sys账户的密码给忘记了,这就悲剧了,所以我只好先修改sys用户的密码咯.

修改密码也是分好几种情况的,下面我就一一列举吧:

一、忘记除SYS、SYSTEM用户之外的用户的登录密码。

用SYS (或SYSTEM)用户登录。

CONN SYS/PASS_WORD AS SYSDBA;

使用如下语句修改用户的密码。

ALTER USER user_name IDENTIFIED BY newpass;

注意:密码不能全是数字。并且不能是数字开头。否则会出现:ORA-00988: 口令缺失或无效

二、忘记SYS用户,或者是SYSTEM用户的密码。

如果是忘记SYSTEM用户的密码,可以用SYS用户登录。然后用ALTER USER 密令

修改密码。

CONN SYS//PASS_WORD AS SYSDBA;

ALTER USER SYSTEM IDENTIFIED BY newpass;

如果是忘记SYS用户的密码,可以用SYSTEM用户登录。然后用ALTER USER 密令

修改密码。

CONN SYSTEM//PASS_WORD ;

ALTER USER SYSTEM IDENTIFIED BY newpass;

三、如果SYS,SYSTEM用户的密码都忘记或是丢失。

这一项尤其重要。

可以使用ORAPWD.EXE 工具修改密码。

开始菜单->运行->输入‘CMD’,打开命令提示符窗口,输入如下命令:

orapwd file=D:/oracle/product/10.2.0/db_1/database/pwdctcsys.ora

password=newpass

这个命令重新生成了数据库的密码文件。密码文件的位置在ORACLE_HOME目录下

的/database目录下。

这个密码是修改sys用户的密码。除sys和system其他用户的密码不会改变。

修改过密码之后就能以dba的身份进行修改了,不是dba的话在执行修改命令的时候会提示你权限不足. 开始-->运行-->cmd,之后输入:"sqlplus sys/oracle@192.168.0.1/orcl as SYSDBA"

如果不能正常进入,那就需要你手动输入用户名和密码,进入之后会出现

"SQL>"的提示,

按照下面给出的命令依次执行就可以了,

SQL>SHUTDOWN IMMEDIATE

SQL>ALTER SYSTEM ENABLE RESTRICTED SESSION;

SQL>ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;

SQL>ALTER SYSTEM SET AQ_TM_PROCESSES=0;

SQL>ALTER DATABASE OPEN;

ALTER DATABASE CHARACTER SET ZHS16GBK

*ERROR at line 1:

ORA-12712: new character set must be a superset of old character set SQL>SHUTDOWN IMMEDIATE

SQL>STARTUP

SQL>STARTUP MOUNT

SQL> ALTER DATABASE CHARACTER SET ZHS16GBK ;

报字符集不兼容,此时下INTERNAL_USE指令不对字符集超集进行检查:SQL>ALTER DATABASE CHARACTER SET INTERNAL_USE ZHS16GBK;

这时候,这个ORA-12899就已经彻底解决了,就可以进行数据的导入了...

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:缺少value ORA-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: 线程未启用- 无法安装

Oracle常见错误汇总

1.Oracle ORA-01555快照过旧的错误 首先了解Oracle在什么情况下会产生ORA-01555错误: 假设有一张6000万行数据的testdb表,预计testdb全表扫描1次需要2个小时,参考过程如下: 1、在1点钟,用户A发出了select * from testdb;此时不管将来testdb怎么变化,正确的 结果应该是用户A会看到在1点钟这个时刻的内容。 2、在1点30分,用户B执行了update命令,更新了testdb表中的第4100万行的这条记录, 这时,用户A的全表扫描还没有到达第4100万条。毫无疑问,这个时候,第4100万行的这条记录是被写入了回滚段,假设是回滚段UNDOTS1,如果用户A的全表扫描到达了第4100万行,是应该会正确的从回滚段UNDOTS1中读取出1点钟时刻的内容的。 3、这时,用户B将他刚才做的操作提交了,但是这时,系统仍然可以给用户A提供正确的数据, 因为那第4100万行记录的内容仍然还在回滚段UNDOTS1里,系统可以根据SCN到回滚段里找到正确的数据,但要注意到,这时记录在UNDOTS1里的第4100万行记录已经发生了重大的改变:就是第4100万行在回滚段UNDOTS1里的数据有可能随时被覆盖掉,因为这条记录已经被提交了! 4、由于用户A的查询时间漫长,而业务在一直不断的进行,UNDOTS1回滚段在被多个不同的 transaction使用着,这个回滚段里的extent循环到了第4100万行数据所在的extent,由于这条记录已经被标记提交了,所以这个extent是可以被其他transaction覆盖掉的!5、到了1点45分,用户A的查询终于到了第4100万行,而这时已经出现了第4条说的情况, 需要到回滚段UNDOTS1去找数据,但是已经被覆盖掉了,这时就出现了ORA-01555错误。

Oracle常见问题及其解决方法(doc 10页)

Oracle常见问题及其解决方法(doc 10页)

iSQL*Plus URL:http://10.10.43.137:5560/isqlplus Enteprise Manager 10g Database Control URL: http://information:5500/em OracleDBConsoleorcl不能启动,报错误码2解决策略 解决策略一: 修改你的主机参数文件 修改一下: C:\WINDOWS\system32\drivers\etc下的host文件. 如果没有的话就自己加一个IP和你的计算机名对应,如果已有了就把你的IP地址和你的计算机名对应起来. 如: # copyright (c) 1993-1999 microsoft corp. # # this is a sample hosts file used by microsoft tcp/ip for windows. # # this file contains the mappings of ip addresses to host names. each # entry should be kept on an individual line. the ip address should # be placed in the first column followed by the corresponding host name. # the ip address and the host name should be separated by at least one # space. # # additionally, comments (such as these) may be inserted on individual # lines or following the machine name denoted by a '#' symbol. # # for example: # # 102.54.94.97 https://www.sodocs.net/doc/bd16109004.html, # source server # 38.25.63.10 https://www.sodocs.net/doc/bd16109004.html, # x client host 127.0.0.1 localhost 10.10.43.137 information 解决策略二: 启动电脑,到登陆界面,电脑报有个服务启动失败,电脑没有新装软件,周六还没有问题,怎么突然报这个错误?于是到事件查看器中看看什么问题,显示是OracleDBConsoleorcl启动失败,到服务里一看,确实没有启动。手动启动一下,报错误码2 我装的是10g,于是到ORACLEproduct10.2.0db_1test_orclsysmanlog目录看一下log里写了什么,打开OracleDBConsoleorclsrvc.log. log最后记录的是: 日志让看emdbconsole.nohup文件,目录里没有这个文件呀。 手动执行一下emctl.bat,于是启动控制台,执行emctl.bat istart dbconsole,报错,ORACLE_SID 没有定义,打开emctl.bat看看,这里是定义环境变量的地方,其中已经设置了这些:if not defined REMOTE_EMDROOT (set ORACLE_HOME=Ec:oracleproduct10.2.0db_1)

oracle操作常见错误

1.[Err] ORA-02438: Column check constraint cannot reference other columns ORA-02438: 列检查约束条件无法引用其它列 --通常可能是constraint 拼写错误 2. [Err] ORA-02250: missing or invalid constraint name 约束条件名缺失或者无效。 比如: alter table tbl_school add s_level number(7) constraint unique; //错误的 ====add s_level number(7) unique; 正确的 4. [Err] ORA-01861: literal does not match format string ORA-01861: 文字与格式字符串不匹配 比如: insert into tbl_school(id,s_name,address,establish_time,style) values(1,'清华','北京','1976-05-05','理'); 日期的输入,要有固定的格式 =====values(1,'清华','北京',to_date('1976-05-01','rrrr-mm-dd'),'理'); 5:select index_name,table_name from user_indexes Where table_name=’s_emp’; 提示错误:为选定行。 ‘’里面的就变成了字符串,是区分大小写的, select index_name,table_name from user_indexes Where table_name=’S_EMP’; 6:Ora-02290【】违反检查约束条件 可能原因:check里面出错,在传值的时候,出现乱码了,只能重建表

oracle常见等待事件及处理方法

我们可以通过视图v$session_wait来查看系统当前的等待事件,以及与等待事件相对应的资源的相关信息 看书笔记db file scattered read DB ,db file sequential read DB,free buffer waits,log buffer space,log file switch,log file sync 我们可以通过视图v$session_wait来查看系统当前的等待事件,以及与等待事件相对应的资源的相关信息,从而可确定出产生瓶颈的类型及其对象。v$session_wait的p1、p2、p3告诉我们等待事件的具体含义,根据事件不同其内容也不相同,下面就一些常见的等待事件如何处理以及如何定位热点对象和阻塞会话作一些介绍。 <1> db file scattered read DB 文件分散读取(太多索引读,全表扫描-----调整代码,将小表放入内存) 这种情况通常显示与全表扫描相关的等待。当全表扫描被限制在内存时,它们很少会进入连续的缓冲区内,而是分散于整个缓冲存储器中。如果这个数目很大,就表明该表找不到索引,或者只能找到有限的索引。尽管在特定条件下执行全表扫描可能比索引扫描更有效,但如果出现这种等待时,最好检查一下这些全表扫描是否必要。因为全表扫描被置于LRU(Least Recently Used,最近最少适用)列表的冷端(cold end),所以应尽量存储较小的表,以避免一次又一次地重复读取它们。 ================================================== 该类事件的p1text=file#,p1是file_id,p2是block_id,通过dba_extents即可确定出热点对象(表或索引) select owner,segment_name,segment_type from dba_extents

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 mount SQL> 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数据库的初始密码。 问题3:表空间不足而引发错误怎么办? 解决方法如下: oracle表空间不足,一般有两个原因:

ORACLE数据库常见问题诊断方法(内部错误篇)-20021224-A2

ORACLE数据库常见问题诊断方法 (内部错误篇) ORACLE的错误各种各样,包括应用错误、一般错误、内部错误等,前面两类错误在ORALCE的文档中有说明,但内部错误没有相应的文档说明,只是请求报告ORACLE技术支持,本文档主要讨论ORACLE的内部错误,且这些内部错误在ICD中经常出现,仅供参考。 内部错误一般为格式为ORA-00600或ORA-006XX,其中前者最普遍,后者较少见,ORA-600中的第一个变量用于标记代码中错误的位置,第二个到第五个变量显示附加信息,例如文件号、函数号等具体信息。 1ORA-00600【12330】错误 特征:数据库告警日志中经常有这个错误及相应的trace文件 原因:用户异常中断操作或客户端字符集与SERVER端字符集不一致 措施:如果偶尔出现,则为用户异常中止,例如代理或应用服务器的断连,有时会产生这个错误;如果经常出现,则为客户端与服务端字符集不一致。 客户端的字符集在注册表里定义: HKEY__LOCAL__MACHINE/SOFTWARE/ORACLE/NLS__LANG 2ORA-00604【xxx】错误 特征:在分析SQL语句时,查询数据字典表发生错误 原因:这类错误一般与内存管理有关,有可能是由于内存泄漏导致该错误 措施:如果偶尔出现,适当加大SHARE_POOL_SIZE;如果经常出现,则需要打相应的补丁。 3ORA-00600【3339】错误 特征:数据冲突,包括:块格式冲突、非法索引入口 原因:oracle系统本身bug;操作系统或介质故障 措施:ORACLE升级或打补丁;检查硬件故障 4ORA-00600【13004】错误 特征:逻辑冲突,例如查询返回错误的数据等 原因:oracle系统本身bug; 措施: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: 丢失或无效的会话 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: 无法创建会话: 服务器组属于其它用户 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

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的竞争状况: 和

编写SQL语句时常见的10种错误-推荐下载

Java开发者编写SQL语句时常见的10种错误 Java开发者对于面向对象编程思维与命令行编程思维的协调程度, 取决于他们如下几种能力的水平: 1.技巧(任何人都可以编写命令行形式的代码) 2.教条(有的人使用“模式 - 模式”的方式,即模式无处不在, 并以名字作为标识) 3.情绪状况(在初期,真正面向对象形式的代码比起命令式代码 会更加难懂。) 但是,当Java开发人员编写SQL语句时,一切都变得不同了。SQL 是一种说明式语言,与面向对象思想和命令式思想无关。在SQL语 言中,查询非常容易表达。但它也不是那么容易以最佳或最正确地

方式编写出来。开发人员不仅需要重新思考自己的编程模式,还需要从集合论的角度进行深入思考。 以下是Java开发人员使JDBC或jOOQ编写SQL语句时,几种常见的错误(排名不分先后) 1.忘记了NULL 误解NULL的含义可能是Java开发人员编写SQL最常犯的错误。这有可能是因为NULL也被称为UNKNOWN,但也有其他的原因。当然如果它只被叫做UNKNOWN,会更容易理解一些。另一个原因是,JDBC 在获取数据,或绑定变量时,SQL中的NULL被映射到Java中的null。这可能会导致人们认为类似Java中null==null的情况,SQL 中也存在NULL= NULL。 一个更离奇的误解NULL的例子是,当NULL谓词用于行值表达式时。另一个微妙的问题产生与对NOTIn 反连接中NULL含义的误解。 解决办法 不断的训练自己。要时刻明确NULL的含义,每次你写SQL时,都要考虑: 对于NULL来说谓词是否正确?

NULL是否影响该函数的结果? 2.在Java内存中处理数据 一些Java开发者十分了解SQL特性。偶尔JOIN,零散的UNION,没什么问题。但如果遇到视窗功能,结果集分组等情况又怎么样呢?很多Java开发人员会把SQL数据加载到内存,把数据转换成一些适合的集合类型,以十分冗长的循环结构在集合上执行恼人数学运算(至少在Java 8改进容器之前是这样的)。 但一些SQL数据库除了支持SQL标准外,还支持先进的OLAP特性,执行效率更好,且更容易编写。一个非标准的例子就是甲骨文的MODEL子句。只是让数据库进行数据处理过程,将最终获取的结果加载到Java内存中。因为一些非常聪明的人已经优化了这些昂贵的产品。所以,事实上,通过向OLAP数据库上进行迁移,您将得到两个好处: 1.简洁。它可能使得在SQL中编写正确代码会比在Java中相对 容易 2.性能。该数据库将可能比你的算法要快。更重要的是,你不必 再通过网络传输数百万条记录。 解决办法

代码常见的错误

PHP的错误和异常处理 任何程序员在开发时都可能遇到过一些失误,或其他原因造成错误的发生。当然,用户如果不愿意或不遵循应用程序的约束,也会在使用时引起一些错误发生。PHP程序的错误发生一般归属于下列三个领域。 ?语法错误 语法错误最常见,并且最容易修复。例如,遗漏了一个分号,就会显示错误信息。这类错误会阻止脚本执行。通常发生在程序开发时,可以通过错误报告进行修复,再重新运行。 ?运行时错误 这种错误一般不会阻止PHP脚本的运行,但是会阻止脚本做希望它所做的任何事情。例如,在调用header()函数前如果有字符输出,PHP 通常会显示一条错误消息,虽然PHP脚本继续运行,但header()函数并没有执行成功。 ?逻辑错误 这种错误实际上是最麻烦的,不但不会阻止PHP脚本的执行,也不会显示出错误消息。例如,在if语句中判断两个变量的值是否相等,如果错把比较运行符号“==”写成赋值运行符号“=”就是一种逻辑错误,很难会被发现。 一个异常则是在一个程序执行过程中出现的一个例外,或是一个事件,它中断了正常指令的运行,跳转到其他程序模块继续执行。所以异常处

理经常被当做程序的控制流程使用。无论是错误还是异常,应用程序都必须能够以妥善的方式处理,并做出相应的反应,希望不要丢失数据或者导致程序崩溃。

E_COMPILE_WARNING致命的编译时警告 E_USER_ERROR用户导致的错误消息 E_USER_WARNING用户导致的警告 E_USER_NOTICE用户导致的注意消息 E_ALL所有的错误、警告和注意 E_STRICT关于PHP版本移植的兼容性和互操作性建议

如果用户希望在PHP脚本中,遇到上表中的某个级别的错误时,将错误消息报告给用户。则必须在配置文件php.ini中,将display_errors 指令的值设置为On,开启PHP输出错误报告的功能。也可以在PHP 脚本中调用ini_set()函数,动态设置配置文件php.ini中的某个指令。如果display_errors被启用,就会显示满足已设置的错误级别的所有错误。当用户在访问时,看到显示的这些消息不仅会感到迷惑,而且还可能会过多地泄露有关服务器的信息,使服务器变得很不安全。所以在项目开发或测试期间启用此指令,可以根据不同的错误报告更好的调试程序。出于安全性和美感的目的,让公众用户查看PHP的详细出错消息一般是不明智的,所以在网站投入使用时要将其禁用。 当你正在开发站点时,你将希望PHP报告特定类型的错误,可以通过调整错误报告的级别实现,可以通过以下两种方法设置错误报告级别。?可以通过在配置文件php.ini中,修改配置指令error_reporting 的值,修改成功后重新启动Web服务器,则每个PHP脚本都可以按调

Oracle数据库服务中常见的6个错误

Oracle数据库服务中常见的6个错误 没有人会否认Oracle是全球最有影响的数据库产品之一;不过好的东西似乎总不是那么好用(初看起来如此),甚至有些无情--总会给layman们一个个无情的错误号。下面是我个人的总结,条条有用,希望能给初学者一点启示。 关于“好的东西似乎总不是那么好用(初看起来如此)”的一个笑话:在参加 IBM DB2 512、513培训前,在校园网上下载到了安装程序,不过任凭我们几个同学研究个半天,也不知哪个文件是安装文件,竟没有安装成功。最后,一致认为:看来这个培训真是太有必要了!事后,才知道--我们下载的是4linux的! 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:协议适配器错误(顽固性的) 原因:未知。

Oracle错误代码大全

Oracle错误代码大全 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: 数据库打开时无法重命名当前日志的成员

Oracle错误一览表

Oracle错误一览表 2012年8月7日 15:48 ORA-00001: 违反唯一约束条件 (.) ORA-00017: 请求会话以设置跟踪事件 ORA-00018: 超出最大会话数 ORA-00019: 超出最大会话许可数 ORA-00020: 超出最大进程数 () ORA-00021: 会话附属于其它某些进程;无法转换会话 ORA-00022: 无效的会话 ID;访问被拒绝 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: 无法创建会话: 服务器组属于其它用户 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: 无法获得锁定 --禁用了表锁定 ORA-00070: 命令无效 ORA-00071: 进程号必须介于 1 和 之间 ORA-00072: 进程""不活动 ORA-00073: 命令 介于 和 个参数之间时使用 ORA-00074: 未指定进程 ORA-00075: 在此例程未找到进程 "" ORA-00076: 未找到转储 ORA-00077: 转储 无效

Oracle错误代码大全

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: 丢失或无效的会话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: 无法创建会话: 服务器组属于其它用户 ORA-00050: 获取入队时操作系统出错 ORA-00051: 等待资源超时 ORA-00052: 超出最大入队资源数() ORA-00053: 超出最大入队数 ORA-00054: 资源正忙,要求指定NOW AIT 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 为但需要成为才可兼容

oracle错误代码

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: 线程的紧急恢复需要日志

Oracle常见错误

ORA-00911: 无效字符问题和解决 我今天写JDBC插入数据库数据时出现ORA-00911: 无效字符问题, 我把SQL打到控制台上面,然后COPY到SQL PULS中是可以插入数据的, 但是在ECLIPSE中执行就报ORA-00911: 无效字符的错误, 我查了一下, 我的是类似这种的insert into tablea(aaa) values('111'); 把最后面的;去掉,修改为 insert into tablea(aaa) values('111')就可以执行了。 原因:没有找到sql语句中要调用的表(可能根本不存在、可能表明不对,也可能没有区分大小写)。 解决方法:1、打断点,转到定义,在整个解决方案中搜索看sql语句的出处,然后排查具体原因。 第一、不存在:用plsql往里面导入表。 第二、表名不对,修改表的名字。 第三、没有区分大小写: https://www.sodocs.net/doc/bd16109004.html,/jtmjx/archive/2012/07/03/2574766.html 采用Oracle数据库,使用Powerdesigner设计,生成Sql文件导入后查询出现 “ORA-00942: 表或视图不存在”,很是郁闷,这个问题以前出现过,当初解决了,但因好久没有使用,这次竟然忘了,害得我浪费了好些时间,为了避免再次忘记,将它记下来,同时和大家一起分享。 1、问题产生的原因 Oracle 是大小写敏感的,我们创自己写Sql脚本创建表的时候Oracle会自动将我们的表名,字段名转成大写, eg: createtable T_WindRadar (

wr_id VARCHAR2(64) not null, wr_reciveTime DATE, wr_image BLOB, constraint PK_T_WINDRADAR primarykey (wr_id) ); 但是Oracle 同样支持"" 语法,将表名或字段名加上""后,Oracle不会将其转换成大写eg: createtable "T_WindRadar" ( "wr_id" VARCHAR2(64) not null, "wr_reciveTime" DATE, "wr_image " BLOB, constraint PK_T_WINDRADAR primarykey (wr_id) ); 如果加上了"",那么我们采用一般的SQL语句查询则会产生“ORA-00942: 表或视图不存在”,因此SQL脚本中需要将表名也加上""。 eg: select*from "T_WindRadar"; 这种情况在我们手写SQL的时候一般不会发生,但是我们使用powerdesigner设计数据库的时候,由于不注意会经常出现此类问题,因为Powerdesigner生成的SQL文件默认是加""的。 2、解决的办法 因为我们使用的是Powerdesigner,所以可以不用手工改写SQL脚本,只要设置Powerdesigner重新生成即可。 在PowerDesiger中,在physical data model 中找到菜单中的Database下的Edit current DBMS中, 选择Script->Sql->Format,有一项CaseSensitivityUsingQuote,它的comment 为“Determines if the case sensitivity for identifiers is managed using double quotes”, 表示是否适用双引号来规定标识符的大小写,可以看到右边的values默认值为“YES”,改为“No”,点击【应用】按钮。 这样再生成sql语句时,表和字段名上是没有引号了。

相关主题