当前位置:文档之家› oracle常见错误及代码

oracle常见错误及代码

oracle常见错误及代码
oracle常见错误及代码

1、ORA-12541:TNS:没有监听器

原因:没有启动监听器或者监听器损坏。若是前者,使用命令net start OracleOraH ome10gTNSListener(名字可能有出入)即可;如果是后者,则使用“Net Configuration Assistant”工具向导之“监听程序配置”增加一个监听器即可(基本不用写任何信息,一路O K。在添加之前可能需要把所有的监听器先删!)

2、ORA-12500:TNS:监听程序无法启动专用服务器进程或ORA-12560:TNS:协议适配器错误

原因:ORACLE的数据库服务没有启动。使用命令net start ORACLESERVICEORA DB(ORADB为数据库名字)即可。如果仍没有解决,请继续向下看。

3、如果数据库服务启动失败,则很有可能是其注册表项值损坏,最好的做法是以下两步:

1)ORADIM -DELETE -SID oradb 删除数据库服务项

2)ORADIM -NEW -SID oradb 新增数据库服务项

注:这个过程中如果出错,就重启计算机!

4、ORA-12154:TNS:能解析服务名

原因:ORACLE的网络服务名没有正确配置。请使用“Net8 Configuration Assistan t”工具向导之“本地网络服务名配置”配置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,执行之!

PS:

1、ora_startup.bat:

net start OracleOraHome81TNSListener

net start ORACLESERVICEORADB

svrmgrl 一般情况下不用,不过有时少不了它的,具体步骤见第5步。

2、ora_shutdown.bat:

net stop OracleOraHome81TNSListener

net stop ORACLESERVICEORADB

3、ORACLE相关服务名请参见“管理工具”之“服务”中以ORACLE开头的服务名

1、TNS-12154 Error 或ORA-12154

特征:SQL*NET没有找到连接串或别名

原因1:(1)没有找到TNSNAMES.ORA文件,该文件的缺省路径为:

windows 95/98 client

sql*Net 2.x - ORAWIN95NETWORKADMIN

Net8 - ORAWIN95NET80admin

Net8i - ORACLEORA81NETWORKADMIN

windows NT client

sql*Net 2.x - ORANTNETWORKADMIN

Net8 - ORANTNET80ADMIN

Net8i - ORACLEORA81NETWORKADMIN

UNIX Client

$ORACLE_HOME/NETWORK/ADMIN

or /etc

or /var/opt/oracle

. 在客户端设置TNS_ADMIN

在注册表HKEY_LOCAL_MACHINESoftwareOracle 设置TNS_ADMIN. TNS_A DMIN 指向TNSNAMES.ORA文件的位置

措施:按上述说明检查文件位置

原因2:(2)TNSNAMES.ORA文件中内容格式不对

措施:检查文件格式,标准格式如下:

DEV1.WORLD =

(DESCRIPTION = (ADDRESS_LIST =

(ADDRESS = (PROTOCOL = tcp) (Host = 145.45.78.56) (Port = 1521) ) )

(CONNECT_DATA = (SID = ORCL) ) )

原因3: (3) TNSNAMES.ORA与SQLNET.ORA不一致

措施: SQLNET.ORA格式如下:

TRACE_LEVEL_CLIENT = OFF

SQLNET.AUTHENTICATION_SERVICES = (NONE)

NAMES.DIRECTORY_PATH = (TNSNAMES)

AUTOMATIC_IPC = OFF

因为没有NAMES.DEFAULT_DOMAIN=world,所以DEV1.WORLD连接串不能连接,可以在TNSNAMES.ORA中增加

DEV1 =

(DESCRIPTION = (ADDRESS_LIST =

(ADDRESS = (PROTOCOL = TCP) (Host = 145.45.78.56) (Port = 1521) ) )

(CONNECT_DATA = (SID = ORCL) ) )

此时可连接。

2、NL-00462 Error 或ORA-00462

特征:监听器无法启动

原因:LISTENER.ORA文件内容错误,例如,括号不匹配、参数名错误等、多余的空格等。

措施:重新编辑文件

3、NL-00405 Error 或ORA-00405

特征:LISTENER.ORA文件不可读或找不到

原因:LISTENER.ORA文件内容错误,例如,括号不匹配、参数名错误等、多余的空格等。

措施:确保文件位置在缺省目录下$ORACLE_HOME/network/admin,或设置环境变量TNS_ADMIN指向这个文件所在位置。

4、TNS-01155 Error 或ORA-01155

特征:LISTENER.ORA文件中SID_LIST_LISTENER变量赋值不对

原因:LISTENER.ORA文件内容错误,SID_LIST_LISTENER变量赋值不对。

措施:确保文件中赋值正确,$ORACLE_HOME/network/admin/samples目录下有样例文件,可供参考。

5、TNS-12537 、TNS-12560、TNS-00507 Error

特征:LISTENER.ORA文件中引用了一个无效的协议适配程序

原因:LISTENER.ORA文件中PROCOTOL变量赋值不对。

措施:确保文件中赋值正确,一般用tcp协议,$ORACLE_HOME/network/admin/ samples目录下有样例文件,可供参考。用adapters tnslsnr检查协议程序

6、TNS-12203 Error

特征:不能与目标连接

原因:监听器是否启动;别名是否配置

措施:检查监听器是否启动,例如lsnrctl status;检查TNSNAMES.ORA的别名配置

7、TNS-12533 Error

特征:不能与目标连接

原因:非法的address参数,

措施:检查TNSNAMES.ORA的ADDRESS参数

1)用tnsping net_service_name测试网络服务名是否配置正确!

2)用sqlplus程序通过test网络服务名进行测试,如sqlplus system/manager@t est。如果不能连接到数据库,则在tnsname.ora文件中的test网络服务名(net servic e)后面加上sqlnet.ora文件NAMES.DEFAULT_DOMAIN参数的值,

Oracle_错误代码集合ORA-17001=内部错误

ORA-17002=Io 异常

ORA-17003=无效的列索引

ORA-17004=无效的列类型

ORA-17005=不支持的列类型

ORA-17006=列名无效

ORA-17007=无效的动态列

ORA-17008=关闭的连接

ORA-17009=关闭的语句

ORA-17010=关闭的Resultset

ORA-17011=结果集已耗尽

ORA-17012=参数类型冲突

ORA-17014=未调用ResultSet.next

ORA-17015=语句被取消

ORA-17016=语句超时

ORA-17017=已初始化游标

ORA-17018=无效的游标

ORA-17019=只能描述查询

ORA-17020=无效的行预取

ORA-17021=定义丢失

ORA-17022=在索引处定义丢失

ORA-17023=不支持的特性

ORA-17024=未读取数据

ORA-17025=defines.isNull () 中出现错误

ORA-17026=数字溢出

ORA-17027=流已被关闭

ORA-17028=直到关闭当前的ResultSet 才能进行新的定义ORA-17029=setReadOnly: 不支持只读连接

ORA-17030=仅READ_COMMITTED 和SERIALIZABLE 是有效的事务处理级

ORA-17031=setAutoClose: 仅支持自动关闭模式打开的情况

ORA-17032=行预取不能设置为零

ORA-17033=出现格式不正确的SQL92 串

ORA-17034=出现不支持的SQL92 标记

ORA-17035=不支持的字符集!!

ORA-17036=OracleNumber 中的异常

ORA-17037=不能在UTF8 和UCS2 之间转换

ORA-17038=字节数组不够长

ORA-17039=Char 数组不够长

ORA-17040=必须在连接URL 中指定子协议

ORA-17041=索引中丢失IN 或OUT 参数:

ORA-17042=无效的批值

ORA-17043=流的最大长度无效

ORA-17044=内部错误: 未分配数据数组

ORA-17045=内部错误: 试图访问批值之外的绑定值

ORA-17046=内部错误: 数据访问的索引无效

ORA-17047=语法分析类型描述符时出错

ORA-17048=未定义的类型

ORA-17049=不一致的java 和sql 对象类型

ORA-17050=矢量中没有这样的元素

ORA-17051=此API 不能用于非UDT 类型

ORA-17052=此ref 无效

ORA-17053=长度无效

ORA-17054=LOB 定位器无效

ORA-17055=遇到无效字符, 在

ORA-17056=不支持的字符集(在类路径中添加orai18n.jar) ORA-17057=关闭的LOB

ORA-17058=内部错误: 无效的NLS 转换率

ORA-17059=无法转换为内部表示

ORA-17060=无法构造描述符

ORA-17061=丢失描述符

ORA-17062=Ref 游标无效

ORA-17063=不在事务处理中

ORA-17064=无效的语法或数据库名为空ORA-17065=转换类为空

ORA-17066=访问层需要具体实施

ORA-17067=指定了无效的Oracle URL ORA-17068=调用中的无效参数

ORA-17069=使用明确的XA 调用

ORA-17070=数据大小超出此类型的最大值ORA-17071=超出VARRAY 的最大限制ORA-17072=对列来说插入的值太大ORA-17074=无效的名称模式

ORA-17075=对只转发结果集的无效操作

ORA-17076=对只读结果集的无效操作

ORA-17077=无法设置REF 值

ORA-17078=无法进行该操作, 因为连接已打开

ORA-17079=用户身份证明与现有身份证明不匹配

ORA-17080=无效的批处理命令

ORA-17081=批处理中出现错误

ORA-17082=没有当前行

ORA-17083=不在插入行上

ORA-17084=访问插入行

ORA-17085=出现值冲突

ORA-17086=插入行上的未定义列值

ORA-17087=可忽略的执行提示: setFetchDirection() ORA-17088=请求的结果类型和并发级别的语法不受支持ORA-17089=内部错误

ORA-17090=不允许的操作

ORA-17091=在所请求的类型和(或) 并发级别无法创建结果集

ORA-17092=无法在调用处理操作结束时创建或执行JDBC 语句

ORA-17093=OCI 操作返回OCI_SUCCESS_WITH_INFO

ORA-17094=对象类型版本不匹配

ORA-17095=语句高速缓存大小未作设置

ORA-17096=不能为此逻辑连接启用语句高速缓存。

ORA-17097=PL/SQL 索引表的元素类型无效

ORA-17098=空二进制大对象操作无效

ORA-17099=PL/SQL 索引表数组长度无效

ORA-17100=数据库Java 对象无效

ORA-17101=OCI 连接池对象中的属性无效

ORA-17102=Bfile 为只读

ORA-17103=通过getConnection 返回的连接类型无效。改用getJavaSqlConnection

ORA-17104=要执行的SQL 语句不得为空白或空值

ORA-17105=未设置连接会话时区

ORA-17106=指定的JDBC-OCI 驱动程序连接池配置无效ORA-17107=指定的代理类型无效

ORA-17108=没有在defineColumnType 中指定最大长度ORA-17109=找不到标准Java 字符编码

ORA-17110=执行完毕, 但带有警告

ORA-17111=指定的连接高速缓存TTL 超时时间溢出

ORA-17112=指定的线程时间间隔无效

ORA-17113=线程时间间隔值大于高速缓存超时值

ORA-17114=无法在全局事务处理中使用本地事务处理提交ORA-17115=无法在全局事务处理中使用本地事务处理回退ORA-17116=无法在活动的全局事务处理中启用自动提交功能ORA-17117=无法在活动的全局事务处理中设置保存点

ORA-17118=无法获取已命名保存点的ID

ORA-17119=无法获取未命名保存点的名称

ORA-17120=无法设置启用了自动提交功能的保存点

ORA-17121=无法回退到启用了自动提交功能的保存点

ORA-17122=无法回退到启用了自动提交功能的保存点

ORA-17123=指定的语句高速缓存大小无效

ORA-17124=指定的连接高速缓存失活超时时间无效

ORA-17125=显式高速缓存返回了不正确的语句类型

ORA-17126=固定等待超时时间已过

ORA-17127=指定的固定等待超时时间无效

ORA-17128=SQL 字符串不是查询

ORA-17129=SQL 字符串不是DML 语句

ORA-17132=请求的转换无效

ORA-17133=UNUSED

ORA-17134=SQL 中命名参数的长度超过32 个字符

ORA-17135=setXXXStream 中使用的参数名在SQL 中出现多次ORA-17136=格式错误的DATALINK URL, 请尝试使用getString()

ORA-17137=连接高速缓存未启用, 或者不是启用高速缓存的有效数据源ORA-17138=连接高速缓存名称无效。必须是有效的字符串并且是唯一的ORA-17139=连接高速缓存属性无效

ORA-17140=具有此高速缓存名称的连接高速缓存已存在

ORA-17141=具有此高速缓存名称的连接高速缓存不存在

ORA-17142=具有此高速缓存名称的连接高速缓存已禁用

ORA-17143=在连接高速缓存中找到的连接无效或已过时

ORA-17144=未执行语句句柄

ORA-17145=接收到的ONS 事件无效

ORA-17146=接收到的ONS 事件版本无效

ORA-17147=试图设置未出现在SQL 中的参数名

ORA-17148=方法仅在Thin 中实施

ORA-17149=这已经是代理会话

ORA-17150=代码会话的参数错误

ORA-17151=Clob 太大, 无法存储在Java 字符串中

ORA-17152=此方法仅在逻辑连接中实施

ORA-17153=此方法仅在物理连接中实施

ORA-17154=无法将Oracle 字符映射为Unicode

ORA-17155=无法将Unicode 映射为Oracle 字符

ORA-17156=数组大小对于端对端的度量值无效

ORA-17157=setString 只能处理少于32766 个字符的字符串

ORA-17158=持续时间对该函数无效

ORA-17159=要执行端对端跟踪的度量值太长

ORA-17160=执行上下文ID 序列号超出范围

ORA-17161=使用的交易模式无效

ORA-17162=不支持的holdability 值

ORA-17163=无法在启用连接高速缓存时使用getXAConnection()

ORA-17164=无法在启用了高速缓存的情况下从物理连接调用getXAResource()

ORA-17165=服务器中不存在此连接的PRIVATE_JDBC 包

ORA-17166=无法对PLSQL 语句执行提取

ORA-17167=找不到PKI 类。要使用'connect /' 功能, oraclepki.jar 必须位于类路径中

ORA-17168=密钥存储遇到问题。请在出现打开的Wallet (cwallet.sso) 时检查Wallet 的位置并使用mkstore 实用程序确保此Wallet 包含正确的身份证明

ORA-17169=无法将流绑定到ScrollableResultSet 或UpdatableResultSet

ORA-17170=名称空间不能为空

ORA-17171=属性长度不能超过30 个字符

ORA-17172=属性的值不能超过400 个字符

ORA-17173=并非所有返回参数都已注册

ORA-17174=唯一受支持的名称空间是CLIENTCONTEXT

ORA-17175=远程ONS 配置期间出错

ORA-17176=无法识别区域设置

ORA-17177=对象不使用请求的接口包装任何内容

ORA-17178=ANYTYPE pickler 失败

ORA-17179=KOTAD 中的幻数不匹配

ORA-17180=KOTAD 中的格式错误

ORA-17181=字符转换器一般错误

ORA-17182=字符转换器溢出错误

ORA-17183=字符转换器不可用错误- 请与Oracle 技术支持联系ORA-17184=创建NCLOB 时使用了不正确的形式

ORA-17185=连接属性的默认值缺失

ORA-17186=连接属性的访问模式缺失

ORA-17187=用于存储连接属性的实例变量的类型不受支持

ORA-17188=在连接属性的反映过程中出现IllegalAccessException ORA-17189=用于存储连接属性的实例变量缺失

ORA-17190=连接属性: 格式错误

ORA-17191=无效的提交选项

ORA-17192=在已释放LOB 上的操作

ORA-17193=无效的AQ 消息格式

ORA-17194=标记和重设不受此类的支持

ORA-17195=标记无效或未设置

ORA-17196=预读时的限制太大

ORA-17197=参数名的数目与已注册参数的数目不匹配

ORA-17198=未设置数据库会话时区

ORA-17199=不支持数据库会话时区

#

# No more error messages here

#

######################################### ####################

#

# XA error messages

# from 17200 to 17259

#

######################################### ####################

ORA-17200=无法正确地将XA 打开字符串从Java 转换成C

ORA-17201=无法正确地将XA 关闭字符串从Java 转换成C

ORA-17202=无法正确地将RM 名称从Java 转换成C

ORA-17203=无法将指针类型强制转换成jlong

ORA-17204=输入数组过短, 无法容纳OCI 句柄

ORA-17205=无法使用xaoSvcCtx 从C-XA 获取OCISvcCtx 句柄

ORA-17206=无法使用xaoEnv 从C-XA 获取OCIEnv 句柄

ORA-17207=未在数据源中设置tnsEntry 属性

ORA-17213=C-XA 在xa_open 期间返回XAER_RMERR

ORA-17215=C-XA 在xa_open 期间返回XAER_INVAL

ORA-17216=C-XA 在xa_open 期间返回XAER_PROTO

ORA-17233=C-XA 在xa_close 期间返回XAER_RMERR

ORA-17235=C-XA 在xa_close 期间返回XAER_INVAL

ORA-17236=C-XA 在xa_close 期间返回XAER_PROTO

ORA-17240=无法检索本地主机IP 地址。出现UnknownHostException。

ORA-17241=无法检索本地主机IP 地址。出现SecurityException。

ORA-17242=对选项中指定的TCP 端口进行语法分析时出错。

ORA-17243=对选项中指定的TIMEOUT 值进行语法分析时出错。

Oracle权限不足问题集锦

Oracle Oracle权限不足问题集锦 跟Oracle数据库打交道的DBA都会遇到过 “Insufficient privileges”这样的错误, 出现权限不足问题的情况各有不同在本次的 Oracle系列电子书中,我们就总结了网友在 使用Oracle数据时遇到的Insufficient privileges错误。 ORA-01031:Insufficient privileges错误解决方法 以sysdba登录时的Insufficient privileges错误 Windows集群下的ORA-12638和ORA-01031错误 在不同的模式下执行SQL语句 TechTarget 中国《Oracle电子书》 1

TechTarget 中国《Oracle 电子书》 2

TechTarget 中国《Oracle 电子书》 3 解决创建存储过程时的 Insufficient privileges 错误 问:我需要使用Toad 在我的schema 中创建一个存储过程。 但是出现了“Insufficient privileges.”的错误。当我以 System 连接并将schema 的名称添加到表的前缀中 (schema.tablename),系统提示表不存在。请问问题出在哪里?我该如何解决? 答:为了在你的schema 中创建一个存储过程,你需要 有CREATE PROCEDURE 系统权限。你可以通过查询用户的DBA_SYS_PRIVS 来进行查看。此外,如果存储过程要参考对象,该用户还需要拥有相应的对象权限。举例来说,如果存储过程插入一行数据到SCOTT .EMP 表中,针对该表,用户必须被授予INSERT 权限。授权不能通过角色,你必须直接将对象权限授予用户。 (作者:Brian Peasland 译者:孙瑞 来源:TT 中国)

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连接错误故障排除讲解

Oracle 连接错误故障排除 产品:Tableau Desktop, Tableau Server 版本:All 上次修改日期:24 Aug 2015 Oracle 驱动程序需要具有唯一格式的特定连接语句。然而,可能并不总是需要TNSNames.ora 文件。例如,如果仅安装了 Tableau 提供的 Oracle 文件,且不具有独立的 Oracle 客户端。Oracle 错误消息涉及 TNSNames.ora 文件。 通常,纠正“高级 Oracle 连接”对话框中的路由或命名语法,或者使 用 .WORLD 数据库全名,即可解决大部分 Oracle 连接问题。如果连接错误需要进一步进行故障排除,请参阅下面列出的 4 种常见连接错误。 ?ORA-03113:通信信道上的文件结尾 ?ORA-12154:TNS:无法解决指定的连接标识符 HOST 值不正确或者全局名称不正确或未知的问题 ?ORA-12514:TNS 侦听器当前无法识别连接描述符中请求的服务SERVICE 值不正确 ?ORA-12541:TNS:无侦听器 PORT 值不正确 ?ORA-00932:数据类型不一致 ORA-03113:通信信道上的文件结尾 ORA-03113 是任何干扰 Oracle 会话的问题的全捕获类型错误。造成该错误的原因可能有很多。请参阅下表,了解故障排除指南。 ?请参阅特定于此错误的 Oracle 文档:我的 Oracle 支持。 o请参阅 Oracle 的 B 常见错误故障排除页面。 ?Oracle 建议您检查网络问题并审查 SQL*Net 设置。 ?如果连接到 Oracle 9.2.0.5,则在很多情况下,造成此错误的主要原因是 Oracle 错误 3010227。请要求 Oracle 数据库管理员应用 Oracle 修补程序 9.2.0.6 或适合您服务器的另一个修补程序。 ?将 Oracle 初始化参数“STAR_TRANSFORMATION_ENABLED”设置为FALSE。 ?或者,如果您想进一步测试此问题,请遵循下面列出的可选过程。 Step 1 从 Tableau Desktop 开始页面,选择“连接到数据”。

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常见问题及其解决方法(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.doczj.com/doc/e613924884.html, # source server # 38.25.63.10 https://www.doczj.com/doc/e613924884.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数据库常见的错误

安装oracle数据库容易出现的几个错误及解决办法 这几天因为学习的关系,需要安装oracle数据库。以前在机子上装过,但是卸载了,在再次安装的过程,碰到一些问题,查了一些网上的资料,现在整理起来,相信蛮有用的! 一、第一次安装容易出现的错误。 第一次安装出现“加载数据库错误areasQueries”的错误,一般是因为Oracle安装目录带有中文字符的目录 二、再次安装容易出现的错误 第一次安装失败或者卸载后再次安装oracle数据库,需要在注册表里删除相关注册信息才行。 1、删除ORACLE注册表,位置如下: HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE ORACLE8i 与ORACLE9i的注册表与ORACLE8 ,ORACLE7有所不同,oracle9i注册表的主要内容在HOME0中,再安装其他产品则会出现HOME1,HOME2等。所以如果机子上没有别的产品的话同,把ORACLE 及以下键值全部删除。 2、删除oracle服务,位置如下: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\oracle 含oracle 在内全部删除掉,当然,服务可以用关工具进行删除,同等效果的。 注意,如果已经安装了ArcSDE For Oracle,在删除Oracle键值的时候,不能删除带有ArcSDE 关键字的键值,否则容易造成ArcSDE无法运行。 3.删除事件日志,置如下: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\Eventlog\Application

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: 用户名/口令无效; 登录被拒绝 有可能用户名或者密码错误

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常见问题分析

第一楼目录 故障分类一数据库挂起故障 1 由于ARCHIVE挂起导致数据库挂死 2 NIT文件中SGA区设置太大,导致内存不够用,数据库和系统都挂死 3 由于临时表空间无法扩展导致数据库被挂起 4由于未打补丁导致RMAN备份时将数据库挂起 故障分类二数据库功能/性能异常 5由于BLOB类型的表记录数太多操作又太频繁导致数据库效率急差 6由于未对特大表(达到或超过100万条记录)定期做表分析导致数据库操作特别慢 7由于空间不够导致插入数据时扩展索引失败 8由于REDOLOG破坏导致数据库异常 9由于控制文件被破坏导致数据库无法正常启动 10由于数据文件丢失或破坏导致数据库无法正常启动 11由于空间参数设置不合理导致扩展表空间、索引等失败 12由于时间格式的环境变量设置问题导致话单无法入库 13由于大事务未使用大回滚段导致事务挂起 14由于数据库连接数太多导致服务器进程数多或内存耗尽 15由于使用了MTS方式,导致数据库操作特别慢(包括备份) 16由于存在一个大事务操作,导致数据库性能特别差或产生频繁日志切换 17由于没有COMMIT,导致数据库表被锁住 18索引创建不合理,导致数据库查询特别慢 19 由于BUFFER参数设置不合理导致EXP失败 20由于EXP不向上兼容,语言不兼容,导致不同版本、不同字符集的数据库无法导入 21 由于创建表空间时误将其创建在以‘本地管理’,导致在表空间上的所有对象无法修改其存储参数 22 错误地在系统表空间上建无关的数据文件 23 ORACLE客户端在P4上安装不成功 24由于LISTENER.ORA或TNSNAMES.ORA配置问题导致网络问题 25由于环境变量设置问题导致VERSOIN版本启动问题 26用户数据、表破坏下的数据恢复 27 由于OS层问题导致数据库ORA-600错误 故障分类三将导致数据库安装失败或打补丁失败的情况 28 由于环境变量或没有安装MAKE文件导致数据库安装失败 29 由于/TMP等文件系统设置太小导致数据库无法正常安装 30 HPUX上由于核心参数设置不对导致数据库无法正常启动 31 在64位的ORACLE817上打32的补丁失败 32由于安装备机数据库时是使用的拷贝方式,所以导致在备机上安装补丁失败 33由于安装ORACLE时错误地在$ORACLE_HOME目录下创建LINK,导致将打过补丁后的版本拷贝到备机失败

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

ORACLE SPATIAL常见使用错误解决办法

ORACLE SPATIAL常见错误解决办法1、ORA-13226: 没有空间索引接口将不被支持 当使用一个空间操作符时,如果没有使用空间索引导致该操作符不能被完成将会返回该错误。这可能会发生在当你使用的列上没有空间索引、或者优化器没有选择以所用为基础进行计算时。 解决办法:如果在空间操作符的列上没有索引,就创建一个索引。如果优化器没有选择空间索引,那么久显式地指定index或ordered以确保空间索引被使用。 例如: select b.gwm_fid, b.gwm_fno, b.gwm_vno, a.gwm_tileid, b.districtid from gs_tile_p2 a, VP_street_area b where b.gwm_vno = 13001 and b.deletetag = 0 and b.gwm_status = 0 and sdo_relate(a.gwm_geometry, b.gwm_geometry, '' MASK = ANYINTERACT '') = '' TRUE ''; 查询提示该错误,原因gs_tile_p2该表没有创建控件索引。 2、ORA-13203: 读取USER_SDO_GEOM_METADA TA视图失败 如果在USER_SDO_GEOM_METADATA视图中对没有任何元数据的表进行索引,就会返回该错误。 解决办法:在该视图中插入一条与空间层相关的记录。

比如: CREATE INDEX INDEX_GS_TILE_P2 ON GS_TILE_P2(GWM_GEOMETRY)INDEXTYPE IS MDSYS.SPATIAL_INDEX; 提示ORA-13203错误,经查询发现没有在元数据中插入记录。 INSERT INTO USER_SDO_GEOM_METADATA (TABLE_NAME, COLUMN_NAME, DIMINFO, SRID) V ALUES ('GS_TILE_P2', 'GWM_GEOMETRY', MDSYS.SDO_DIM_ARRAY (MDSYS.SDO_DIM_ELEMENT('X', -5000000, -5000000, 0.000000050), MDSYS.SDO_DIM_ELEMENT('Y', -5000000, -5000000, 0.000000050), MDSYS.SDO_DIM_ELEMENT('Z', 0,0, 0.000000050) ), NULL); 3、ORA-13365:层的SRID与几何体的SRID 不符 该错误暗示着在一个表的几何体中的SRID与USER_SDO_GEOM_METADA TA视图中相应的SRID值不符。 解决办法:将两者的SRID设为一致。 4、ORA-13223: SDO_GEOM_METADA TA中的重复项

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:协议适配器错误(顽固性的) 原因:未知。

编写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.性能。该数据库将可能比你的算法要快。更重要的是,你不必 再通过网络传输数百万条记录。 解决办法

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: 数据库打开时无法重命名当前日志的成员

代码常见的错误

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脚本都可以按调

相关主题
文本预览
相关文档 最新文档