Fru*_*ner 20 oracle debugging plsql console-output unbuffered-output
我有许多pl/sql程序,可能需要几分钟才能运行.在开发它们时,我添加了一些打印语句来帮助调试,并提供一些反馈和进度指标.最初,我在小型测试装置上运行这些,输出几乎是瞬间完成的.既然我正在测试需要花费几分钟才能运行的更大的测试集,我发现打印到控制台不再合适,因为在程序结束之前不会打印任何内容.我习惯于在不缓冲输出并立即打印的环境中工作,并且添加简单的打印语句以进行简单的调试和诊断很常见.
是否可以在pl/sql中立即打印输出(不缓冲)?如果没有,人们建议采用哪些替代方案来获得类似的结果?
Ton*_*ews 18
您可以使用自动事务将过程写入表的过程,例如:
procedure log (p_message)
is
pragma autonomous_transaction;
begin
insert into message_log (user, datetime, message)
values (user, sysdate, p_message);
commit;
end;
Run Code Online (Sandbox Code Playgroud)
然后从另一个Oracle会话监视该表.
我们有一个小技巧.
你可以使用DBMS_APPLICATION_INFO.set_client_info("这里的一些信息"); 创建一些变量并替换""中的字符串.
并使用v $ session中的select client_info来监控进度.
| 归档时间: |
|
| 查看次数: |
36971 次 |
| 最近记录: |