我正在尝试将传递给DBMS_OUTPUT.PUT_LINE()函数的值打印到SQL Developer中的DBMS_OUTPUT屏幕。无论我传递给函数什么,都不会在输出窗口中打印任何内容。
我打开了DBMS输出窗口,甚至连接了可用的连接。但是在运行以下脚本时,只有" PL / SQL过程成功完成"在“脚本输出”窗口中打印,“Dbms输出”窗口中没有任何内容。
此外,我已将缓冲区大小设置为30000,我认为这足以打印字符串' test'。 运行命令set serveroutput on也没有用。
当我在命令提示符下在SQLPlus中尝试相同的脚本时,它工作正常并打印' test'在打印之前" PL / SQL程序成功完成"。
请帮助。感谢。
答案 0 :(得分:6)
通过Oracle社区论坛后,我了解到我使用的SQL Developer 17.x不支持Oracle 10g。
较早版本的SQL Developer 4.x将支持Oracle 10g并检索DBMS_OUTPUT缓冲区以在屏幕上显示它。
由于我只为我的家庭作业设置了一个小型数据库,并且不想降级到较旧的SQL Developer,我升级到Oracle 11g XE并且它有效。现在,DBMS_OUTPUT.PUT_LINE()过程的所有输入都出现在Dbms输出窗口中。
答案 1 :(得分:2)
屏幕上的最后一个窗格是" Dbms输出"。点击绿色" +"在其工具栏中签名,然后再次执行BEGIN-END块。
答案 2 :(得分:0)
如果其他人遇到此S.O问题,我会添加此答案以帮助其他人。
我也很努力地在SQL Developer上打印DBMS_OUTPUT,所以我把这个有用的链接放到了很好的地方,解释了该机制的工作原理
https://www.thatjeffsmith.com/archive/2012/03/dbms_output-in-sql-developer/