Oracle利用errorstack追踪tomcat报错ORA-00903 无效表名的问题

Oracle数据库中,可以使用errorstack来追踪tomcat报ORA-00903无效表名的错误。具体步骤如下:

1. 登陆到Oracle数据库,并运行以下SQL语句启用errorstack:

exec DBMS_SYSTEM.SET_EV('10046', 'TRACE')

这会开启errorstack,并将追踪信息写入到名为ora_47091.trc的trace文件中。

2. 重启Tomcat服务器,这会触发ORA-00903无效表名错误。

3. 登录到Oracle数据库,运行以下SQL语句来分析trace文件并生成报告:

SELECT message FROM V$DIAG_TRACE_FILE_CONTENTS 
WHERE NAME = 'ora_47091.trc' AND message LIKE '%ORA-00903%';

这会从trace文件中过滤出包含ORA-00903的行,来定位错误位置。

4. 分析报告,找到错误发生位置的具体SQL语句,例如:

select * from user_tab;     <-- 无效表名user_tab,会报ORA-00903

5. 找到无效表名后,就可以进行修复,例如修改为正确的表名,或者在存储过程JSP等程序中修复SQL语句。

6. 修复完毕后,禁用errorstack以停止写入trace文件:

exec DBMS_SYSTEM.SET_EV('10046', 'FALSE') 

通过errorstack的追踪和分析,我们可以得到导致ORA-00903无效表名错误的具体位置和语句,这大大方便了我们对该错误进行调试和修复。

© 版权声明
THE END
喜欢就支持一下吧
点赞11 分享
评论 抢沙发

请登录后发表评论