跟踪 Oracle API 执行

Posted

技术标签:

【中文标题】跟踪 Oracle API 执行【英文标题】:Trace Oracle API execution 【发布时间】:2021-04-13 21:37:18 【问题描述】:

我使用提供的 Oracle API 制作了更新表值的游标。我的问题是如何查看哪些表受到影响?我想在需要时恢复更改,所以我想先保留这些数据。我们的 Oracle 数据库是 12.1.0.2 版本。

如果跟踪可以管理这个,我该怎么做?我之前尝试过跟踪,但对我来说几乎无法阅读:)

谢谢

【问题讨论】:

当你说 "Oracle API" 时,你到底是什么意思?这是 Oracle Apps 的一部分吗? 【参考方案1】:

这不是答案,我无法回复评论。是的,这是我使用过的 API 块代码,对于之前没有详细说明,我深表歉意:

declare
    --cursor to get all inactive users
cursor cur_inactive_user
is 
    select  fu.user_id,
        fd.responsibility_id,
        fd.responsibility_application_id,
        fd.security_group_id,
        fd.start_date,
        fu.end_date
    from fnd_user fu, fnd_user_resp_groups_direct fd
    where fu.user_id = fd.user_id
    and (fu.end_date < sysdate or fu.end_date is not null)
    and fd.end_date is null;
    --and fu.user_name='HFORD';
begin
    for rec_inactive_user in cur_inactive_user
    loop 
      -- checking if the responsibillity is assigned to the user 
      if (fnd_user_resp_groups_api.assignment_exists (
       rec_inactive_user.user_id,
       rec_inactive_user.responsibility_id,
       rec_inactive_user.responsibility_application_id,
        rec_inactive_user.security_group_id))
    then
        -- Call API to End date the responsibillity
        fnd_user_resp_groups_api.update_assignment (
        user_id                          => rec_inactive_user.user_id,
        responsibility_id                => rec_inactive_user.responsibility_id,
        responsibility_application_id    => rec_inactive_user.responsibility_application_id,
        security_group_id                => rec_inactive_user.security_group_id,
        start_date                       => rec_inactive_user.start_date,
        end_date                         => rec_inactive_user.end_date,
        description                      => null );
        --commit;
    end if;
    end loop;
end;

【讨论】:

以上是关于跟踪 Oracle API 执行的主要内容,如果未能解决你的问题,请参考以下文章

如何查看oracle服务器上正在执行的SQL语句

在Oracle中利用SQL_TRACE跟踪SQL的执行

oracle 执行跟踪

Oracle中有没有啥工具 可以像MSSQL的Profiler工具一样实时跟踪被执行的SQL语句

如何查看SQL Server2000执行过的SQL语句

Oracle - 特定用户的审计跟踪