Oracle SQL Developer SQL Çalışma Sayfası penceresinde metin yazdırın


91

Oracle SQL kullanıyorum (SQLDeveloper'da, SQL Çalışma Sayfasını kullanarak). Seçimimden önce aşağıdaki gibi bir ifade yazdırmak istiyorum

PRINT 'Querying Table1';
SELECT * from Table1;

Metin çıktısını yazdırmak / göstermek için ne kullanmalıyım? Baskı değil, çünkü bu bana şu hatayı veriyor: Bağlama Değişkeni Table1BİLDİRİLMEDİ. DBMS_OUTPUT.PUT_LINE bilinmeyen bir komuttur. (Açıkçası, deneyimsiz bir SQLDeveloper ve Oracle kullanıcısıyım. Print kelimesinin eşanlamlısı olmalı, ancak ne olduğunu bilmeden yardım bulmakta güçlük çekiyorum.)

Yanıtlar:


143

görüntü açıklamasını buraya girin

basit yorumlar için:

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

-- do something

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

almalısın:

anonymous block completed
simple comment

anonymous block completed
second simple comment

Değişkenlerin sonuçlarını yazdırmak istiyorsanız, işte başka bir örnek:

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;

çıktınız şöyle olmalıdır:

anonymous block completed
first comment

anonymous block completed
comment2

1
İlk satır, sarılmış biçimdeki sunucu çıktısını ayarlayın; WRAPPED biçiminde sunucu çıkışı ayarlanmalıdır;
geographika

Bunu çalıştıramıyorum. set serveroutput on format word_wrapped; begin dbms_output.put_line('hello world'); end; select * from dual Bana verir: 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'ın daha yeni sürümlerinde, ilk olarak en üstteki menü çubuğunu kullanarak DBMS Çıktısı penceresini açmanız gerekir: Görünüm> Dbms Çıkışı.
Bruno Ranschaert

olabilirdi ama ekran görüntüsü ve metin olmasaydı, +1 haha ​​olurdu
David Mann

41
PROMPT text to print

Not: Çalıştır İfadesi (Ctl + Enter) değil Komut Dosyası Olarak Çalıştır (F5) kullanılmalıdır


1
Bu çok kullanışlı. Teşekkürler!
sunlover3

Benim için Run İfadesi (Ctl + Enter) ile de çalışıyor.
Pascal R.

21

Yankıyı şu şekilde ayarlayabilirsiniz :

set echo on
REM Querying table
select * from dual;

SQLDeveloper'da komut dosyası olarak çalıştırmak için F5'e basın.


Bunu bir cevap olarak kabul ettim, ancak başka bir cevabın çok daha fazla puanı olduğunu görüyorum, bu yüzden kabulümü buna göre değiştirdim. Ancak bu benim için işe yaradı ve bu iyi bir cevap.
perşembe

13

Metninizi aşağıdaki gibi seçkin bir ifadeye koyabilirsiniz ...

SELECT 'Querying Table1' FROM dual;

8

Ana cevap, birinin dbms çıktı penceresini açması gereken yeni kurulumlar için bir adımı dışarıda bıraktı.

görüntü açıklamasını buraya girin

Sonra kullandığım komut dosyası:

dbms_output.put_line('Start');

Başka bir komut dosyası:

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

7

Benim için sadece birlikte çalışmasını sağlayabildim

set serveroutput on format word_wrapped;

Sarmalandı ve WRAPPED hata verdi: SQLPLUS komutu başarısız oldu - yeterli argüman yok


1

Tüm SQL ifadelerinizin yankılanmasını istemiyorsanız, ancak yalnızca komut dosyanızın kolayca tanımlanabilen sonuçlarını görmek istiyorsanız, bunu şu şekilde yapın:

yankıyı açmak

REM MyFirstTable

yankıyı kapat

MyFirstTable'dan sil;

yankıyı açmak

REM MySecondTable

yankıyı kapat

MySecondTable'dan sil;

Yukarıdaki örnekten elde edilen çıktı şuna benzer:

-REM MyFirstTable

13 satır silindi.

-REM MySecondTable

27 satır silindi.


0

Başlamazsam - bitirmek hatadır. Yani benim için bu çalışıyor (başka hiçbir şeye gerek yok):

set serveroutput on;
begin
DBMS_OUTPUT.PUT_LINE('testing');
end;
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.