私はOracle SQLを使用しています(SQLDeveloperで、SQL Worksheetを使用)。次のように、選択する前にステートメントを印刷したい
PRINT 'Querying Table1';
SELECT * from Table1;
テキスト出力の印刷/表示には何を使用しますか?それは私にエラーを与えるので、印刷ではありません:バインド変数Table1
は宣言されていません。 DBMS_OUTPUT.PUT_LINEは不明なコマンドです。 (明らかに、私は経験の浅いSQLDeveloperおよびOracleユーザーです。Printには同義語が必要ですが、それが何であるかを知らずにヘルプを見つけるのに苦労しています。)
簡単なコメント:
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
Prompt text to print
注:ステートメントの実行(Ctl + Enter)ではなくスクリプトとして実行(F5)を使用する必要があります
エコー設定 をオンにすることができます:
set echo on
REM Querying table
select * from dual;
SQLDeveloperで、F5を押してスクリプトとして実行します。
次のような選択ステートメントにテキストを入れることができます...
SELECT 'Querying Table1' FROM dual;
私にとって、私はそれを動作させることができました
set serveroutput on format Word_wrapped;
ラップしてWRAPPEDがエラーを投げました:SQLPLUSコマンドが失敗しました-引数が足りません
すべてのSQLステートメントをエコーしたくないが、スクリプトの識別しやすい結果のみを表示したい場合は、次のようにします。
エコーをオンに設定
REM MyFirstTable
エコーをオフに設定
myFirstTableから削除します。
エコーをオンに設定
REM MySecondTable
エコーをオフに設定
mySecondTableから削除。
上記の例の出力は次のようになります。
-REM MyFirstTable
13行が削除されました。
-REM MySecondTable
27行が削除されました。