如何在 pl sql 中使用匿名块打印整个表?
我想使用DBMS_OUTPUT.PUT_LINE
,但行数仅超过1。表中没有任何内容按顺序递增,因此我无法使用循环。有没有办法打印出表格中的每一行?
I want to use DBMS_OUTPUT.PUT_LINE
, but the number of rows exceeds just 1. There is nothing in the table which increments sequentially, so I can't use a loop. Is there some way to print out each row in the table?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
尝试这样的事情。
try with something like this.
这可能会有所帮助:
This may help:
做到这一点的快速但最肮脏的方法实际上是通过 SQL*Plus:
SQL*Plus 有一些简洁但基本的报告功能;我们甚至可以生成 HTML 文件。
如果您有一个非常长的表(许多行)或一个宽表(许多列),您最好直接输出到文件,就像这样。
这可能看起来很麻烦,但 PUT() 调用可以从 USER_TAB_COLUMNS 生成。 UTL_FILE 有一些问题,因此 阅读文档。
您可以对 DBMS_OUTPUT 使用相同的控制结构......
但是如果您要从 SQL*Plus 中假脱机输出,为什么不使用更简单的选项呢?
The quick and dirtiest way of doing this is actually through SQL*Plus:
SQL*Plus has some neat if basic reporting functionality; we can even generate HTML files.
If you have a very long table (many rows) or a wide one (many columns) you may be better off outputting directly to a file, like this.
This may look like a chore, but the PUT() calls can be generated from USER_TAB_COLUMNS. There are a couple of gotchas with UTL_FILE so read the documentation.
You could use the same control structure with DBMS_OUTPUT....
... but if you are going to spool out from a SQL*Plus, why not use the easier option?