20

我刚刚进入 PL/SQL,我尝试运行以下代码,并且我正在完成匿名块,但我认为我应该得到测试输出。有谁知道我做错了什么?

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

7 回答 7

54

查看 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 开发人员

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

于 2013-02-10T22:14:44.870 回答
8

是的,在 Oracle SQL Developer 中放置以下语句:

SET SERVEROUTPUT ON;

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

我找不到View -> DBMS Output,我使用的是 1.5.5 版。

于 2013-09-22T16:09:25.467 回答
5

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

单击 ->查看->Dbms 输出,然后单击 Dbms 输出窗口上的 + 符号。现在您可以运行该过程并可以看到输出。

于 2013-09-12T06:43:27.077 回答
1

`下面的语句将给出可能的解决方案试试这个

SET SERVEROUTPUT ON;

然后运行这段代码会得到如下输出

declare
a integer :=10;
b integer :=20;
c integer;
f real;
begin
c := a+b;
dbms_output.put_line('value of c: ' || c);
f := 70.0/3.0;
dbms_output.put_line('value of f: ' || f);

结尾; /

代码将给出以下输出

c 的值:30 f 的值:23.3333333333333333333333333333333333333

PL/SQL 过程成功完成。

于 2017-08-09T17:12:26.607 回答
0

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

SET SERVEROUTPUT ON

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

否则我们可以检查 SQL Developer select "View" -> "DBMS Output"
在标签PLSQL developer下,我们可以查看消息。OutPut

于 2013-02-11T06:08:34.890 回答
-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
于 2014-12-11T05:21:15.507 回答
-2

如果您在执行过程时通过键入“EXECUTE ;”得到“匿名块完成” 然后运行以下命令并再次执行该过程。命令是

设置服务器输出;

于 2016-08-22T06:26:34.553 回答