【发布时间】:2016-12-18 17:43:39
【问题描述】:
所以我有一个使用 Oracle 作为其数据库平台的 .NET 软件。该软件中的报告将调用 Oracle 模式中的过程,这些过程将在数据库上运行许多更新/插入/删除/合并。
现在从研究中我可以看到 SQL%ROWCOUNT 可用于告诉查询将行数放入 DBMS_OUTPUT - 但我理解它的方式如果我从查询软件执行这些程序(即:SQL Plus、TOAD 等)。
我需要找到一种方法来将受影响的行数显示回报告中。
现在,如果我没有遗漏一些基本内容,我想最简单的方法是将受影响行的 SQL%ROWCOUNT 插入审计表中,然后在程序完成工作后将其与报告一起调用。
所以最后:我不知道如何做到这一点。
非常感谢!
更新:
好的。所以我的 SP 在游标、动态 SQL 等方面有点复杂 - 因此,根据您的想法和来自 AskTom 的这个主题的一些帮助,我设法得到了以下信息:
declare v_count number;
.......
loop
fetch v_data into v_database_name;
exit when v_data%NOTFOUND;
sql_update := 'merge PL/SQL block';
execute immediate 'begin ' || sql_update || '; :x := sql%rowcount; end;' using OUT v_count;
update cw_script_audit set sparam = sparam||'//'||v_count where hmy = 5063;
commit;
sql_alter := 'alter session close database link '||v_database_name;
execute immediate sql_alter;
commit;
end loop;
...........
**update cw_script_audit set sparam = sparam||'//'||v_count where hmy = 5063;**
**This line updates a single static record for testing purposes**
【问题讨论】:
标签: oracle plsql audit rowcount audit-trail