【问题标题】:DBMS OUTPUT PUT doesn't print anythingDBMS OUTPUT PUT 不打印任何内容
【发布时间】:2016-04-16 08:40:01
【问题描述】:

我是 PL/SQL 的新手,我想显示以下消息。 当我在 SQL Developer 中编译它时,我只会得到

  PL/SQL procedure successfully completed.

我的代码是这样的:

SET SERVEROUTPUT ON;

DECLARE
  mesaj VARCHAR2 (100) := 'PL/SQL';
BEGIN
  DBMS_OUTPUT.PUT(mesaj);
END;
/

【问题讨论】:

  • 改用DBMS_OUTPUT.PUT_LINE是否有效?
  • @HellmarBecker 是的!
  • 那么它可能只是行缓冲 - 如果行没有完成,则不会打印任何内容。

标签: oracle plsql dbms-output


【解决方案1】:

您需要通过调用DBMS_OUTPUT.NEW_LINE; 添加行尾标记。行尾标记由PUT_LINE 添加,但不是由PUT 添加。

SET SERVEROUTPUT ON;

DECLARE
  mesaj VARCHAR2 (100) := 'PL/SQL';
BEGIN
  DBMS_OUTPUT.PUT(mesaj);
  DBMS_OUTPUT.NEW_LINE;
END;
/

【讨论】:

    【解决方案2】:

    此包中的 PUT 过程和 PUT_LINE 过程使您能够 将信息放在可以被另一个过程读取的缓冲区中,或者 包。

    当您调用PUT_LINE 时,您指定的项目会自动跟随 通过行尾标记。

    如果您调用PUT 来构建一行,则必须通过调用 NEW_LINE 添加您自己的行尾标记,或者您可以尝试DBMS_OUTPUT.PUT_LINE,它会为每一行附加一个行尾标记.

    SET SERVEROUTPUT ON;
    
    DECLARE
      mesaj VARCHAR2 (100) := 'PL/SQL';
    BEGIN
      DBMS_OUTPUT.PUT_LINE(mesaj);
    END;
    /
    

    PUT - 此过程在缓冲区中放置部分行。 PUT_LINE - 此过程在缓冲区中放置一行。

    【讨论】:

    • 这是一个 4 年多以前的问题......你回答的内容与 Hellmar Becker 4 岁的评论基本相同......为什么?
    猜你喜欢
    • 2019-05-26
    • 2021-02-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-02
    相关资源
    最近更新 更多