99

我正在使用 Oracle SQL(在 SQLDeveloper 中,使用 SQL 工作表)。我想在我的选择之前打印一个声明,例如

PRINT 'Querying Table1';
SELECT * from Table1;

我用什么来打印/显示文本输出?它不是打印,因为这给了我错误:绑定变量Table1未声明。DBMS_OUTPUT.PUT_LINE 是未知命令。(显然,我是一个缺乏经验的 SQLDeveloper 和 Oracle 用户。一定有一些 Print 的同义词,但我在不知道它是什么的情况下很难找到它的帮助。)

4

8 回答 8

155

在此处输入图像描述

简单的评论:

set serveroutput on format wrapped;
begin
    DBMS_OUTPUT.put_line('simple comment');
end;
/

-- do something

begin
    DBMS_OUTPUT.put_line('second simple comment');
end;
/

你应该得到:

anonymous block completed
simple comment

anonymous block completed
second simple comment

如果你想打印出变量的结果,这里有另一个例子:

set serveroutput on format wrapped;
declare
a_comment VARCHAR2(200) :='first comment';
begin
    DBMS_OUTPUT.put_line(a_comment);
end;

/

-- do something


declare
a_comment VARCHAR2(200) :='comment';
begin
    DBMS_OUTPUT.put_line(a_comment || 2);
end;

你的输出应该是:

anonymous block completed
first comment

anonymous block completed
comment2
于 2008-12-11T16:45:59.830 回答
45
PROMPT text to print

注意:必须使用 Run as Script (F5) 而不是 Run Statement (Ctl + Enter)

于 2010-11-03T07:09:54.793 回答
21

您可以将 echo 设置为 on:

set echo on
REM Querying table
select * from dual;

在 SQLDeveloper 中,按 F5 以作为脚本运行。

于 2008-10-10T21:50:10.757 回答
16

主要答案为新安装留下了一个必须打开 dbms 输出窗口的步骤。

在此处输入图像描述

然后我使用的脚本:

dbms_output.put_line('Start');

另一个脚本:

set serveroutput on format wrapped;
begin
    DBMS_OUTPUT.put_line('jabberwocky');
end;
于 2019-02-15T17:40:34.140 回答
14

您可以将您的文本放在一个选择语句中,例如...

SELECT 'Querying Table1' FROM dual;
于 2008-10-12T02:25:30.343 回答
7

对我来说,我只能让它与它一起工作

set serveroutput on format word_wrapped;

wrapped 和 WRAPPED 只是抛出错误: SQLPLUS command failed - not enough arguments

于 2011-03-02T16:19:11.083 回答
2

如果我省略开始 - 结束它是错误的。所以对我来说这是有效的(不需要其他任何东西):

set serveroutput on;
begin
DBMS_OUTPUT.PUT_LINE('testing');
end;
于 2020-05-20T04:56:27.447 回答
1

如果您不希望所有 SQL 语句都被回显,但您只想查看脚本的易于识别的结果,请这样做:

设置回声

REM MyFirstTable

关闭回声

从 MyFirstTable 中删除;

设置回声

REM MySecondTable

关闭回声

从 MySecondTable 中删除;

上述示例的输出将如下所示:

-REM 我的第一个表

删除了 13 行。

-REM MySecondTable

删除了 27 行。

于 2014-12-08T23:24:00.483 回答