首页数据库Oracle中tomcat报错ORA-00903怎么办

Oracle中tomcat报错ORA-00903怎么办

时间2024-03-22 06:04:03发布访客分类数据库浏览327
导读:这篇文章主要给大家介绍“Oracle中tomcat报错ORA-00903怎么办”的相关知识,下文通过实际案例向大家展示操作过程,内容简单清晰,易于学习,有这方面学习需要的朋友可以参考,希望这篇“Oracle中tomcat报错ORA-0090...
这篇文章主要给大家介绍“Oracle中tomcat报错ORA-00903怎么办”的相关知识,下文通过实际案例向大家展示操作过程,内容简单清晰,易于学习,有这方面学习需要的朋友可以参考,希望这篇“Oracle中tomcat报错ORA-00903怎么办”文章能对大家有所帮助。

现象

tomcat错误日志断断续续报ORA-00903: invalid table name,并无具体SQL与表名,需要排查哪段代码写入了无效表名,
可以通过ORACLE提供的errorstack追踪报错SQL。
由于生产数据无法取出,以下皆为测试环境测试还原生产错误。

errorstack简介

设置errorstack,在发生特定的ORA错误时会记录发生问题的会话,语句以及各个进程的trace文件,
在alert日志中有记录错误记录的trace文件位置,也可以给单独会话开启errorstack,追踪会话报错信息,可以通过
下面两个方法开启:

/*level0仅转储错误堆栈
/*level1转储错误堆栈和函数调用堆栈
/*level2Level1+ProcessState
/*level3Level2+Contextarea(显示所有cursors,着重显示当前cursor)

(1)altersession/system

altersession/systemsetevents'error_number> tracenameerrorstacklevel3';
/*error_number为ORA错误后编号。

(2)oradebug

/*使用oradebug需要用户具有sysdba权限
SQL> oradebugsetospid/setmypid/setorapidpid> ;
SQL> oradebugdumperrorstack3

可以通过下面方法查看当前系统开启errorstack状态:

SQL> setserveroutputon
SQL> oradebugsetmypid
SQL> oradebugeventdumpsession/system;

追踪

SQL> altersystemsetevents'903tracenameerrorstacklevel3';
alter日志:

TueJun0914:23:442020
OSPid:10855executedaltersystemsetevents'903tracenameerrorstacklevel3'

追踪结果

alert日志信息:

alert日志信息:

TueJun0914:28:042020
Errorsinfile/u01/app/oracle/diag/rdbms/honor/honor1/trace/honor1_ora_7205.trc:
ORA-00903:表名无效
TueJun0914:28:062020
Dumpingdiagnosticdataindirectory=[cdmp_20200609142806],requestedby(instance=1,osid=7205),summary=[abnormalprocesstermination].

查看对应trc追踪文件:

***2020-06-0914:28:04.303
***SESSIONID:(26.661)2020-06-0914:28:04.303
***CLIENTID:()2020-06-0914:28:04.303
***SERVICENAME:(honor)2020-06-0914:28:04.303
***MODULENAME:(SQL*Plus)2020-06-0914:28:04.303
***ACTIONNAME:()2020-06-0914:28:04.303
dbkedDefDump():Startinganon-incidentdiagnosticdump(flags=0x0,level=3,mask=0x0)
-----ErrorStackDump-----
ORA-00903:表å90> 8d> æ97> æ95> 88>
-----CurrentSQLStatementforthissession(sql_id=0vaqwchf1y3fq)-----
insertintonullvalues(1)

找到具体sql,拿给开发人员,修改相关逻辑,错误修复。

关闭errorstack

SQL > alter system set events '903 trace name errorstack off';

总结


以上就是关于“Oracle中tomcat报错ORA-00903怎么办”的相关知识,感谢各位的阅读,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注网络,小编每天都会为大家更新不同的知识。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!

oracle

若转载请注明出处: Oracle中tomcat报错ORA-00903怎么办
本文地址: https://pptw.com/jishu/650117.html
二维数组中的一维数组是怎么检测出来的 Oracle的rownum怎样使用,有什么要注意的

游客 回复需填写必要信息