Oracle PL/SQL中使用DBMS_OUTPUT实现非整行文本输出
Oracle PL/SQL 中非整行输出的方法
当然有啦!Oracle PL/SQL 里完全有和 Java System.out.print(text) 等效的输出方式,就是 DBMS_OUTPUT.PUT(text)。
核心区别:PUT vs PUT_LINE
DBMS_OUTPUT.PUT_LINE(text):输出指定文本后自动添加换行符,每次调用都会开启新的一行。DBMS_OUTPUT.PUT(text):仅将文本追加到当前输出行的末尾,不会自动换行,完全对应你想要的System.out.print的效果。
示例代码
比如你想把多个内容拼接在同一行输出,可以这么写:
-- 先开启DBMS_OUTPUT输出(SQL*Plus/PL/SQL Developer等工具需要这一步) SET SERVEROUTPUT ON; DECLARE BEGIN DBMS_OUTPUT.PUT('Hello '); DBMS_OUTPUT.PUT('from '); DBMS_OUTPUT.PUT('Oracle PL/SQL!'); DBMS_OUTPUT.NEW_LINE; -- 手动添加换行符,结束当前行 END; /
执行后会输出:Hello from Oracle PL/SQL!(整行显示)
如果你最后用PUT_LINE收尾,也能达到同样的换行效果:
SET SERVEROUTPUT ON; DECLARE BEGIN DBMS_OUTPUT.PUT('This is '); DBMS_OUTPUT.PUT_LINE('a single line.'); END; /
输出结果:This is a single line.
注意事项
- 必须先开启DBMS_OUTPUT的输出功能,否则你看不到任何结果。在SQL*Plus或SQLcl里执行
SET SERVEROUTPUT ON即可;在可视化工具(如PL/SQL Developer)中,通常需要勾选输出窗口的启用选项。 DBMS_OUTPUT.PUT不仅支持字符串,还能处理数字、日期等类型的参数,Oracle会自动帮你做类型转换。
内容的提问来源于stack exchange,提问作者Zampanò




