SQL Developer中DBMS_OUTPUT.PUT_LINE()无法输出问题求助
解决SQL Developer中DBMS_OUTPUT.PUT_LINE无输出的问题
我帮不少开发者排查过这个头疼的问题,咱们一步步来定位解决:
先确保当前会话开启了SERVEROUTPUT
就算你打开了DBMS Output窗口,要是没在当前会话里主动开启输出功能,PL/SQL的打印内容还是会被直接丢弃。最简单的办法是在你的PL/SQL脚本开头加上这句:SET SERVEROUTPUT ON;要是需要更大的缓冲区,也可以直接指定大小(和你设置的30000匹配):
SET SERVEROUTPUT ON SIZE 30000;执行完这句再跑你的PL/SQL块试试。
检查DBMS Output窗口的连接是否匹配
有时候我们会开多个数据库连接,DBMS Output窗口可能绑定的不是你当前执行脚本的那个连接。你可以点击DBMS Output窗口顶部的绿色加号按钮,选择你正在用的数据库连接,确保两者完全一致。验证代码确实执行到了输出语句
会不会是你的代码逻辑里,DBMS_OUTPUT.PUT_LINE()根本没被执行到?比如有条件分支跳过了,或者前面抛出了异常但没处理?先写个最极简的测试脚本排除这个可能:SET SERVEROUTPUT ON; BEGIN DBMS_OUTPUT.PUT_LINE('测试输出内容'); END; /如果这个极简脚本都没输出,再回到前面的步骤排查;如果有输出,那就是你原来的代码逻辑有问题,得检查分支、异常处理这些部分。
确认SQL Developer的输出设置
你可以打开SQL Developer的偏好设置(Tools -> Preferences),找到Database -> PL/SQL Compiler,看看相关的输出选项有没有被禁用;另外在DBMS Output窗口里,确保"Enable DBMS Output"是勾选状态(窗口顶部的第一个按钮)。
内容的提问来源于stack exchange,提问作者Neil
相关产品推荐
相关产品推荐

