暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Oracle 如何跟踪包或过程执行的plsql

askTom 2017-04-07
1237

问题描述

嗨,

在我们使用的应用程序中 (使用Oracle作为数据库来存储数据),当我们更新和保存数据时,它会在内部调用plsql包或调用update语句的过程。

我们已经使用db级sql跟踪跟踪了UPDATE语句。但是我们要跟踪在保存期间触发UPDATE语句的plsql包或过程。

我做了一些研究,发现我们可以使用 “ALTER SESSION SET plsql_debug = TRUE;” 启用PLSQL跟踪,然后跟踪所有调用。
但是我意识到此方法仅适用于特定会话,在该会话中我们启动会话,启用plsql跟踪,然后调用包或过程。

那么,有没有办法从数据库中跟踪plsql代码,它是由应用程序调用的?
请帮忙!

山姆

专家解答

如果您控制代码,那么最好的选择就是对其进行操作。

http://asktom.oracle.com/Misc/instrumentation.html

但是,如果不能,那么您仍然可以从plsql跟踪中受益

1) 创建一个登录触发器来调用

dbms_trace.set_plsql_trace(dbms_trace.TRACE_ENABLED_CALLS dbms_trace.TRACE_LIMIT);

2) 仅在调试模式下编译有问题的过程

使用 “trace_limit” 将意味着你只会得到最后8192个调用来阻止事情的弹道。

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论