ole*_*ekb 1 oracle plsql stdout pretty-print pprint
有没有更好的方法在Oracle PL/SQL中打印到STDOUT?
DBMS_OUTPUT.PUT_LINE似乎非常基本和粗糙.应该有类似Python的pprint(Pretty Print)吗?
PL/SQL旨在处理数据,而不是显示它,或者与调用它的客户端交互(例如,没有用户输入的机制).
该DBMS_OUTPUT软件包 "使您能够从存储过程和软件包发送消息.该软件包对于显示PL/SQL调试信息特别有用".它不是为'漂亮'输出而设计的,因为PL/SQL不是为那种工作而设计的.并且重要的是要意识到调用您的过程的客户端可能不会查看或显示DBMS_OUTPUT缓冲区,因此您写入它的内容可能会丢失.
PL/SQL不会向stdout 打印任何内容 ; DBMS_OUTPUT调用写入缓冲区 - 如果它已启用 - 然后一旦PL/SQL完成执行,客户端就可以读取该缓冲区并在某处显示内容(如果已启用则再次显示).这也意味着你不能用它来跟踪进度,因为你在执行过程中看不到任何东西,只有在它完成时才会看到; 所以即使是调试它也不总是最好的工具.
根据你想要做的事情,你可以通过做一些事情让SQL*Plus看起来稍微好一些set serveroutput on format wrapped,这会阻止它在缓冲行开始时丢失空白.但这通常是一个小的好处.
更一般地说,您的过程应该通过OUT参数将其处理结果传递给调用者,或者使其成为返回有用内容的函数.
如果您当前正在尝试使用dbms_output.put_line那时显示查询结果,那不是一个好主意.您可以将集合或引用光标返回给客户端,并允许客户端担心如何显示它.您可以使用绑定变量在SQL*Plus或SQL Developer中轻松显示引用游标.
| 归档时间: |
|
| 查看次数: |
2210 次 |
| 最近记录: |