Cetak teks di jendela Lembar Kerja SQL Pengembang SQL Oracle

91

Saya menggunakan Oracle SQL (di SQLDeveloper, menggunakan Lembar Kerja SQL). Saya ingin mencetak pernyataan sebelum saya memilih, seperti

PRINT 'Querying Table1';
SELECT * from Table1;

Apa yang saya gunakan untuk mencetak / menampilkan keluaran teks? Ini bukan Print, karena itu memberi saya kesalahan: Bind Variable Table1TIDAK DITERAPKAN. DBMS_OUTPUT.PUT_LINE adalah perintah yang tidak diketahui. (Jelas, saya adalah pengguna SQLDeveloper dan Oracle yang tidak berpengalaman. Pasti ada sinonim untuk Print, tetapi saya kesulitan menemukan bantuan untuk itu tanpa mengetahui apa itu.)

thursdaysgeek
sumber

Jawaban:

143

masukkan deskripsi gambar di sini

untuk komentar sederhana:

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

-- do something

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

Anda harus mendapatkan:

anonymous block completed
simple comment

anonymous block completed
second simple comment

jika Anda ingin mencetak hasil variabel, berikut contoh lainnya:

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;

keluaran Anda harus:

anonymous block completed
first comment

anonymous block completed
comment2
Perry Tribolet
sumber
1
Baris pertama mengatur output server pada format yang dibungkus; harus mengatur output server pada format DIBUNGKUS;
geografi
Saya tidak bisa mendapatkan ini untuk bekerja. set serveroutput on format word_wrapped; begin dbms_output.put_line('hello world'); end; select * from dual Memberi saya: 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
Dalam versi SQL Developer yang lebih baru, pertama-tama Anda harus membuka jendela Output DBMS menggunakan bilah menu teratas: View> Dbms Output.
Bruno Ranschaert
bisa saja kecuali tangkapan layar dan tidak ada teks, akan menjadi +1 haha
David Mann
41
PROMPT text to print

Catatan: harus menggunakan Run as Script (F5) bukan Run Statement (Ctl + Enter)

H77
sumber
1
Ini sangat berguna. Terima kasih!
sunlover3
Bekerja untuk saya dengan Pernyataan Jalankan (Ctl + Enter) juga.
Pascal R.16
21

Anda dapat menyetel gema ke:

set echo on
REM Querying table
select * from dual;

Di SQLDeveloper, tekan F5 untuk menjalankan sebagai skrip.

Eddie Awad
sumber
Saya telah menerima ini sebagai jawaban, tetapi saya melihat jawaban lain memiliki lebih banyak poin, jadi saya mengubah penerimaan saya untuk itu. Namun, ini berhasil untuk saya, dan itu jawaban yang bagus.
thursdaysgeek
13

Anda bisa meletakkan teks Anda dalam pernyataan pilih seperti ...

SELECT 'Querying Table1' FROM dual;
Leigh Riffel
sumber
8

Jawaban utama meninggalkan langkah untuk penginstalan baru di mana seseorang harus membuka jendela keluaran dbms.

masukkan deskripsi gambar di sini

Kemudian script yang saya gunakan:

dbms_output.put_line('Start');

Skrip lain:

set serveroutput on format wrapped;
begin
    DBMS_OUTPUT.put_line('jabberwocky');
end;
ΩmegaMan
sumber
7

Bagi saya, saya hanya bisa membuatnya bekerja

set serveroutput on format word_wrapped;

Dibungkus dan DIBUNGKUS hanya melemparkan kesalahan: perintah SQLPLUS gagal - tidak cukup argumen

Michael Erickson
sumber
1

Jika Anda tidak ingin semua pernyataan SQL Anda digaungkan, tetapi Anda hanya ingin melihat hasil skrip yang mudah diidentifikasi, lakukan dengan cara ini:

nyalakan gema

REM MyFirstTable

matikan gema

hapus dari MyFirstTable;

nyalakan gema

REM MySecondTable

matikan gema

hapus dari MySecondTable;

Output dari contoh di atas akan terlihat seperti ini:

-REM MyFirstTable

13 baris dihapus.

-REM MySecondTable

27 baris dihapus.

Frank Staheli
sumber
0

Jika saya mengabaikan permulaan - akhiri itu adalah kesalahan. Jadi bagi saya ini berfungsi (tidak perlu lagi):

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