oracle错误怎么处理,oracle数据库报错
Oracle报错ORA-01722: 无效数字排查解决方案
在做报表系统的过程中,遇到了一个很有意思的问题,就是Oracle报了一个错 java.sql.SQLException: ORA-01722: 无效数字 ,正常来说,报该错就意味着数据类型不匹配,但是因为同一sql语句,多加了一个条件,就查出结果,不加条件,反而报错,所以就意味着,可能数据有误(或者语句有误),但是哪一条数据有误,肉眼难以识别!
成都创新互联主营下陆网站建设的网络公司,主营网站建设方案,成都app软件开发公司,下陆h5微信小程序定制开发搭建,下陆网站营销推广欢迎下陆等地区企业咨询
有一个机构表,存10个机构, is_use=‘0’ 意味着无效,不统计, is_use=‘1’ 意味着有效,参与统计,先看sql:
这个是公共的sql部分,往后添加条件,即可查相应结果:
查昆明能查出结果,但是查云南的时候,就报错,所以一怒之下,把ynCheckSql语句结果查出来,一条一条检验,还真发现了问题:
针对德宏这一个地方,查询的时候报了 ORA-01722: 无效数字 错误,仔细查看数据源,发现数据也没什么问题,因为计算过程中,会报除数不能为0的错,而该条数据有一个值( 该值是分母,也就是除数 ),我们都知道,除数不能为0,所以Oracle针对除数为0的情况,有一个函数:
所以为了直接返回结果,除数为0时直接返回 - 如这个sql语句: ROUND(DECODE(ba.personal_plan,0,'-',(r.p5_year_inc+r.p6_year_inc+r.p7_year_inc+r.p8_year_inc+r.p9_year_inc+r.p10_year_inc)/ba.personal_plan*100),3) perPlan
我们都知道ROUND函数是保留小数位数,如果返回 - ,ROUND函数肯定会包无效数字错误,所以如果除数为0,直接返回特殊字符9999即可,后面再对9999进行单独处理!!
Oracle 常见错误处理
ORA-28040: No matching authencation protocol
1、问题复现:Spring boot 应用启动时候正常,但是页面访问后台接口,程序再访问数据库时,控制台报错如下:没有匹配的身份验证协议
Caused by: java. sql. SQLExceptiona ORA-28040: No matching authentication protocol
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java 112)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java: 331)
....
2、产生原因:当时环境是:Java jdk 1.8 + Spring boot ,在开发环境时是 Oracle 11g,此时运行正常,后面到测试环境换成 Oracle 12C,就发生上面的错误,经过检查发现原来是 .jar 文件里面打了两个不同版本的 Oracle 驱动。
3、解决方式:直接用压缩工具打开 .jar 文件,然后手动删除多余的 ojdbc14-x.x.x.jar 文件,只留下 ojdbc8 版本的驱动即可。
OracleOraDb11g_home1TNSListener服务启动后停止
1、问题复现:有时候连接 Oralce 的时候发现连接不上,然后打开 "services.msc" 服务面板发现 xxxxTNSListener 监听服务没有启动,当手动启动监听服务的时候,它弹框提示:“本地计算机上的OracleOraDb11g_home1TNSListener服务启动后停止。某些服务在未由其他服务或程序使用时将自动停止。”
2、产生原因:Oracle 数据库通常都会提供远程访问,比如小张电脑上安装了 Oralce 数据库,小李、小刘就可以直接访问小张的Oracle。Oracle 开启远程访问,需要在配置文件中设置本机 ip 地址,这样其它人才能通过 IP 访问,然而当 IP 在某些情况下发生变化时,比如切换了网络,或者是动态 IP 等情况,Oracle 监听器监听的 IP 与计算机实际 IP 就会不一致,然后就会发生上面的错误。
3、解决方式:找到 Oracle 数据库安装目录下的 listener.ora 文件,比如 C:appThinkproduct11.2.0dbhome_1NETWORKADMINlistener.ora。然后修改其中监听的 IP 为 Oralce 安装的计算机 IP 地址,比如下面的 192.168.3.195。最后再次启动监听服务即可正常。
ORACLE报错,如何解决?请大家帮忙
Oracle DBA神器:PRM-DUL灾难恢复工具,Schema级别数据恢复。PRM-DULFor Oracle Database – schema级别oracle数据库数据恢复特性 ,PRM-DUL即ParnassusData Recovery Manager是企业级别Oracle数据库灾难恢复工具。PRM可以在无备份的情况下恢复被truncated掉的表,也可以恢复无法打开的Oracle数据库(Alter Database Open失败)中的数据。
Oracle错误 ORA-12560如何解决
造成ORA-12560:
TNS:
协议适配器错误的问题的原因有三个:
1.监听服务没有起起来。windows平台个一如下操作:开始---
程序
---
管理工具
---服务,打开服务面板,
启动oraclehome92TNSlistener服务。
2.database
instance没有起起来。windows平台如下操作:开始---程序---管理工具---服务,打开服务
面板,启动oracleserviceXXXX,XXXX就是你的database
SID.
3.
注册表
问题。regedit,然后进入HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOME0将该
环境变量
ORACLE_SI
D设置为XXXX,XXXX就是你的database
SID.或者右几
我的电脑
,属性--高级--环境变量---
系统变量
--新建
,
变量
名=oracle_sid,
变量值
=XXXX,XXXX就是你的database
SID.或者进入sqlplus前,在command
line下
输set
oracle_sid=XXXX,XXXX就是你的database
SID.
ORA-12560显示“Oracle错误”如何解决?
1、开始---程序---管理工具---服务,打开服务面板,启动oraclehome92TNSlistener服务。
2、开始---程序---管理工具---服务,打开服务面板,启动oracleserviceXXXX,XXXX就是你的database SID。
3、win+r,输入regedit回车,在HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOME0将该环境变量ORACLE_SID设置为XXXX,XXXX就是你的database SID。
产生原因:
监听服务没有起来、database instance没有起来、注册表问题。
Oracle Database:
是甲骨文公司的一款关系数据库管理系统。到目前仍在数据库市场上占有主要份额。作为一个通用的数据库系统,它具有完整的数据管理功能;作为一个关系数据库,它是一个完备关系的产品;作为分布式数据库它实现了分布式处理功能。但它的所有知识,只要在一种机型上学习了ORACLE知识,便能在各种类型的机器上使用。
oracle 关闭之后启动报错ora-00205,怎么解决?
oracle 关闭之后启动报错ora-00205是设置错误造成的,解决方法为:
1、工作中遇到在启动数据库实例的时候报错ORA-32004: obsolete or deprecated parameter(s) specified for RDBMS instance。
2、先用静态参数文件pfile启动数据库,发现使用静态参数文件启动时没有报错。
3、利用静态参数文件重建动态参数文件spfile并重启数据库,发现问题已经解决,不再有失效参数错误。
4、查看警报日志 alert_bianxueqing.log 下面是警报的位置。
5、打开文件把文件中的log_archive_start 把这一行直接删除 然后再重启动就可以了。
文章名称:oracle错误怎么处理,oracle数据库报错
网站链接:http://scyanting.com/article/hsdjjp.html