PLSQL匿名块完成时为什么没有输出?

时间:2013-02-10 22:12:55

标签: sql oracle plsql

我刚刚进入PL / SQL,我尝试运行以下代码,我正在匿名阻止完成,但我想我应该测试输出< / strong>即可。有没有人知道我做错了什么?

DECLARE
   message varchar2(20) := 'Testing output';
BEGIN
   dbms_output.put_line(message);
END;
/

7 个答案:

答案 0 :(得分:47)

查看DBMS_OUTPUT取决于程序。

SQL * Plus和Oracle SQL Developer

首先运行SET SERVEROUTPUT ON;。这就是SQL * Plus或最新版本的Oracle SQL Developer所必需的。

SET SERVEROUTPUT ON;
begin
    dbms_output.put_line('Testing output');
end;
/

PL / SQL Developer

自动检测输出并显示在“输出”选项卡中。

答案 1 :(得分:7)

是的,在Oracle SQL Developer中声明:

SET SERVEROUTPUT ON;

就在您的DECLARE关键字之前,这应该可行。

我无法找到View -> DBMS Output而我使用的是1.5.5版。

答案 2 :(得分:3)

是。有办法在SQL Developer中看到输出。

单击 - &gt;查看 - &gt; Dbms输出,然后在Dbms输出窗口中单击+符号。现在你可以运行程序并看到输出。

答案 3 :(得分:2)

`以下陈述将给出可能的解决方案试试这个

location.reload()

然后运行此代码将获得以下输出

SET SERVEROUTPUT ON;

端; /

代码将提供以下输出

c值:30 值f:23.3333333333333333333333333333333333333

PL / SQL程序已成功完成。

答案 4 :(得分:0)

是的,这是正确的。您需要在此块之前使用:

SET SERVEROUTPUT ON

然后,消息显示在窗口上。

否则我们可以签入SQL Developer select "View" -> "DBMS Output"PLSQL developer标签下的OutPut下,我们可以查看邮件。

答案 5 :(得分:-2)

**SET SERVEROUTPUT ON;**
DECLARE
   a INTEGER :=10;
   b INTEGER :=20;
   c float ;
   d real ;

BEGIN
   c :=a+b;
   dbms_output.put_line('the value of C is :'|| c);
   d := 70.0/3.3;
   dbms_output.put_line('the value of d is:'|| d);
END;

这将为您提供输出

the value of C is: 30
the value of d is: 21.21212121212121212121212121212121212121

答案 6 :(得分:-3)

如果在执行程序时输入“匿名阻止”,请输入“EXECUTE;”然后运行以下命令&amp;再次执行程序。 命令是

SET SERVEROUTPUT ON;