Oracle SQL Developer SQL Worksheetウィンドウでテキストを印刷します


90

Oracle SQLを使用しています(SQLDeveloperではSQLワークシートを使用)。次のように、選択前にステートメントを印刷したい

PRINT 'Querying Table1';
SELECT * from Table1;

テキスト出力の印刷/表示には何を使用しますか?それは私にエラーを与えるので、それは印刷でTable1はありません:バインド変数は宣言されていません。DBMS_OUTPUT.PUT_LINEは不明なコマンドです。(明らかに、私は経験の浅いSQLDeveloperであり、Oracleユーザーです。Printの同義語があるはずですが、それが何であるかを知らずに、ヘルプを見つけるのに苦労しています。)

回答:


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
最初の行はラップされたフォーマットでサーバー出力を設定します。WRAPPED形式でserveroutputを設定する必要があります。
geographika

これを機能させることができません。 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の新しいバージョンでは、最初にtoplevenメニューバーを使用してDBMS出力ウィンドウを開く必要があります:表示>データベース出力。
Bruno Ranschaert 2014

スクリーンショットがあり、テキストがなかった場合は、+ 1 haha​​になります
David Mann

41
PROMPT text to print

注: Runステートメント(Ctl + Enter)ではなく、Run as Script(F5)を使用する必要があります


1
これはとても便利です。ありがとう!
sunlover3 2017年

Run Statement(Ctl + Enter)でも動作します。
パスカルR.

21

エコーをオンに設定できます:

set echo on
REM Querying table
select * from dual;

SQLDeveloperで、F5キーを押してスクリプトとして実行します。


私はこれを回答として受け入れていましたが、別の回答にはもっと多くのポイントがあることがわかりましたので、私の受け入れをそれに変更しました。しかし、これは私にとってはうまくいきました、そしてそれは良い答えです。
thursdaysgeek 2014年

13

あなたのようなselectステートメントにあなたのテキストを置くことができます...

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

begin-endを省略するとエラーになります。だから私にとってこれは機能しています(他に何も必要ありません):

set serveroutput on;
begin
DBMS_OUTPUT.PUT_LINE('testing');
end;
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.