【问题标题】:Oracle DBMS_OUTPUT.PUT_LINEOracle DBMS_OUTPUT.PUT_LINE
【发布时间】:2015-03-25 14:40:21
【问题描述】:

这是关于 Oracle PL/SQL 的一般问题。我试过了 一切都没有成功,但我的命令没有成功。我在尝试着 使用 DBMS_OUTPUT.PUT_LINE 命令显示一个简单的文本字符串。 我不明白我做错了什么,请帮助

       SET SERVEROUTPUT ON;
       BEGIN
       DBMS_OUTPUT.PUT_LINE('HELLO WORLD’);
       END;

这对我不起作用

【问题讨论】:

  • 您使用的是哪个 IDE? SQL*Plus?

标签: plsql oracle11g


【解决方案1】:

默认情况下,大多数工具不会为 dbms_output 配置要写入的缓冲区,并且不会在代码执行后尝试从该缓冲区读取。另一方面,大多数工具都有能力这样做。在 SQL*Plus 中,您需要使用命令 set serveroutput on [size N|unlimited]。所以你会做类似的事情

SQL> set serveroutput on size 30000;
SQL> exec print_actor_quotes( <<some value>> );

在 SQL Developer 中,您将转到查看 | DBMS 输出以启用 DBMS 输出窗口,然后按绿色加号图标为特定会话启用 DBMS 输出。

【讨论】:

    【解决方案2】:

    如果您在 SQLplus 中键入它,那只是在构建命令缓冲区。通过键入斜杠并按回车键运行缓冲区中的内容:

    SQL> set serveroutput on
    SQL> begin
      2  dbms_output.put_line('efs');
      3  end;
      4  /
    efs
    
    PL/SQL procedure successfully completed.
    
    SQL>
    

    【讨论】:

      【解决方案3】:
      1. 启用输出并定义输出大小

      dbms_output.enable(100000);

      1. 写输出

      dbms_output.put_line('Hello world!');

      1. 注意最大行长度,即 256 个字符

      【讨论】:

        猜你喜欢
        • 2015-03-26
        • 1970-01-01
        • 2020-06-15
        • 2013-03-26
        • 1970-01-01
        • 2011-06-22
        • 1970-01-01
        • 2012-05-13
        • 1970-01-01
        相关资源
        最近更新 更多