您的位置:首页 > 数据库 > Oracle

使用oracle的系统跟踪功能调试java程序

2015-05-13 21:03 369 查看
今天在学习配置appfuse连接oracle数据库时,程序报错:org.dbunit.dataset.NoSuchTableException,为查找错误,使用了oracle的整个数据库系统跟踪功能...... 使用oracle的系统跟踪功能调试java程序
今天在学习配置appfuse连接oracle数据库时,在执行设置程序ant db-load时程序报错:org.dbunit.dataset.NoSuchTableException,由于每次执行的会话不固定,为查找错误,使用了oracle的整个数据库系统跟踪功能,步骤如下:
1:使用system登陆数据库

2:设置全库跟踪,执行以下语句:
alter system set events '10046 trace name context forever,level 1';
其中的level 1是跟踪级别,其他级别如下:
level 1:跟踪SQL语句,等于sql_trace=true
level 4:包括变量的详细信息
level 8:包括等待事件
level 12:包括绑定变量与等待事件
注意:如果要设置级别 〉1,必须要先设置级别意,再设置高级别:
SQL> alter system set events '10046 trace name context forever,level 1';
System altered
SQL> alter system set events '10046 trace name context forever,level 12';
System altered

3:运行ant db-load

4:到数据库的udump,根据时间找到跟踪文件

5:直接察看跟踪文件,或使用tkprof(在dos下输入tkprof有说明)分析后再看:
tkprof 跟踪文件 输出文件
6:关闭跟踪,用如下语句:
alter system set events '10046 trace name context off';
关闭数据库后,同时关闭了全局跟踪

本次跟踪结果:
SELECT NULL AS table_cat,
o.owner AS table_schem,
o.object_name AS table_name,
o.object_type AS table_type,
NULL AS remarks
FROM all_objects o
WHERE o.owner LIKE 'MYTEST' ESCAPE '/'
AND o.object_name LIKE '%' ESCAPE '/'
AND o.object_type IN ('xxx', 'TABLE')
ORDER BY table_type, table_schem, table_name
需要以后再继续分析
参考资料:http://www.chq.name/content/view/110/59/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: