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

Posted

技术标签:

【中文标题】在 Oracle SQL Developer SQL 工作表窗口中打印文本【英文标题】:Print text in Oracle SQL Developer SQL Worksheet window 【发布时间】:2010-09-16 15:00:54 【问题描述】:

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

PRINT 'Querying Table1';
SELECT * from Table1;

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

【问题讨论】:

【参考方案1】:

对于简单的 cmets:

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

【讨论】:

第一行将服务器输出设置为换行格式;应将 serveroutput 设置为 WRAPPED 格式; 我无法让它工作。 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 在较新版本的 SQL Developer 中,您首先必须使用顶部菜单栏打开 DBMS 输出窗口:查看 > Dbms 输出。 本来可以,但是屏幕截图和没有文字,本来可以+1哈哈【参考方案2】:
PROMPT text to print

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

【讨论】:

这太有用了。谢谢! 运行语句(Ctl + Enter)也适用于我。【参考方案3】:

您可以set echo 开启:

set echo on
REM Querying table
select * from dual;

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

【讨论】:

我已经接受了这个作为答案,但是我看到另一个答案有更多的点,所以我把我的接受改为了。但是,这确实对我有用,这是一个很好的答案。【参考方案4】:

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

SELECT 'Querying Table1' FROM dual;

【讨论】:

【参考方案5】:

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

然后是我使用的脚本:

dbms_output.put_line('Start');

另一个脚本:

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

【讨论】:

【参考方案6】:

对我来说,我只能让它工作

set serveroutput on format word_wrapped;

wraped 和 WRAPPED 刚刚抛出错误:SQLPLUS 命令失败 - 没有足够的参数

【讨论】:

【参考方案7】:

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

set serveroutput on;
begin
DBMS_OUTPUT.PUT_LINE('testing');
end;

【讨论】:

【参考方案8】:

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

设置回显

REM 我的第一个表

关闭回声

从 MyFirstTable 中删除;

设置回显

REM 我的第二个表

关闭回声

从 MySecondTable 中删除;

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

-REM 我的第一个表

已删除 13 行。

-REM MySecondTable

已删除 27 行。

【讨论】:

以上是关于在 Oracle SQL Developer SQL 工作表窗口中打印文本的主要内容,如果未能解决你的问题,请参考以下文章

为啥 SQL Developer 与 SQL Plus 中的 Oracle PL/SQL 响应时间存在差异?

Windows 64位 安装Oracle instantclient 官方绿色版和PL/SQL Developer 总结

PL/SQL Developer使用技巧快捷键设置

PL/SQL developer连接oracle出现“ORA-12154:TNS:could not resolve the connect identifier specified”问题的解决(代码

怎样在pl/sql developer中给oracle添加一个调度作业

oracle sql developer工具 如何给用户分配权限