在Oracle SQL Developer SQL工作表窗口中打印文本


90

我正在使用Oracle SQL(在SQLDeveloper中使用SQL Worksheet)。我想在选择之前打印一条语句,例如

PRINT 'Querying Table1';
SELECT * from Table1;

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

Answers:


143

在此处输入图片说明

简单的评论:

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

1
第一行将serveroutput设置为换行格式;应该将服务器输出设置为WRAPPED格式;
geographika,2010年

我无法使它正常工作。 set serveroutput on format word_wrapped; begin dbms_output.put_line('hello world'); end; select * from dual 给我: select * from dual; Error report: ORA-06550: line 7, column 1: PLS-00103: Encountered the symbol "SELECT" 06550. 00000 - "line %s, column %s:\n%s" *Cause: Usually a PL/SQL compilation error. *Action
dwjohnston

9
在较新版本的SQL Developer中,您首先必须使用汇总菜单栏打开“ DBMS输出”窗口:“视图”>“ Dbms输出”。
Bruno Ranschaert 2014年

可以,但是屏幕截图和没有文字,应该是+1哈哈
David Mann

41
PROMPT text to print

注意:必须使用以脚本运行(F5)而不是运行语句(Ctl + Enter)


1
这很有用。谢谢!
sunlover3

我也可以使用Run Statement(Ctl + Enter)。
Pascal R.

21

您可以将echo设置为on:

set echo on
REM Querying table
select * from dual;

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


我已经接受了这个答案,但是我看到另一个答案还有很多要点,因此我将接受范围改为了。但是,这确实对我有用,这是一个很好的答案。
2014年

13

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

SELECT 'Querying Table1' FROM dual;

8

主要答案没有进行新安装的步骤,必须打开dbms输出窗口。

在此处输入图片说明

然后是我使用的脚本:

dbms_output.put_line('Start');

另一个脚本:

set serveroutput on format wrapped;
begin
    DBMS_OUTPUT.put_line('jabberwocky');
end;

7

对我来说,我只能与之合作

set serveroutput on format word_wrapped;

包装和包裹只是引发错误:SQLPLUS命令失败-参数不足


1

如果您不希望回显所有的SQL语句,而只想查看脚本的易于识别的结果,请按照以下方式进行操作:

设置回显

REM MyFirstTable

关闭回声

从MyFirstTable中删除;

设置回显

REM MySecondTable

关闭回声

从MySecondTable中删除;

上面示例的输出如下所示:

-REM MyFirstTable

删除了13行。

-REM MySecondTable

已删除27行。


0

如果我省略开始-结束,那就是错误。因此,对我来说,这是行得通的(不需要其他):

set serveroutput on;
begin
DBMS_OUTPUT.PUT_LINE('testing');
end;
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.