2008-10-10 34 views
69

Tôi đang sử dụng Oracle SQL (trong SQLDeveloper, sử dụng Bảng tính SQL). Tôi muốn in một tuyên bố trước khi lựa chọn của tôi, chẳng hạn nhưIn văn bản trong Oracle SQL Developer SQL Trang tính bảng tính

PRINT 'Querying Table1'; 
SELECT * from Table1; 

Tôi phải làm gì để In/hiển thị đầu ra văn bản? Nó không phải là Print, vì điều đó cho tôi lỗi: Bind Variable Table1 KHÔNG được khai báo. DBMS_OUTPUT.PUT_LINE là một lệnh không xác định. (Rõ ràng, tôi là một SQLDeveloper thiếu kinh nghiệm và Oracle sử dụng Phải có một số từ đồng nghĩa với Print, nhưng tôi đang gặp khó khăn khi tìm sự giúp đỡ về nó mà không biết nó là gì..)

Trả lời

118

enter image description here

để lấy ý kiến ​​đơn giản:

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

-- do something 

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

bạn sẽ nhận được:

anonymous block completed 
simple comment 

anonymous block completed 
second simple comment 

nếu bạn muốn in ra các kết quả của các biến, đây là một ví dụ khác:

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; 

đầu ra của bạn nên là:

anonymous block completed 
first comment 

anonymous block completed 
comment2 
+1

Dòng máy chủ đầu tiên đặt trên định dạng được bọc; phải là đặt serveroutput trên định dạng WRAPPED; – geographika

+0

Cảm ơn @geographika –

+0

tốt nhất, đã giúp tôi. +1 –

18

Bạn có thể set echo để trên:

set echo on 
REM Querying table 
select * from dual; 

Trong SQLDeveloper, nhấn F5 để chạy dưới dạng tập lệnh.

+0

Tôi đã chấp nhận điều này như một câu trả lời, nhưng tôi thấy một câu trả lời khác có nhiều điểm hơn, vì vậy tôi đã thay đổi chấp nhận điều đó. Tuy nhiên, điều này đã làm việc cho tôi, và đó là một câu trả lời hay. – thursdaysgeek

12

Bạn có thể đưa văn bản của bạn trong một tuyên bố chọn như ...

SELECT 'Querying Table1' FROM dual; 
33
PROMPT text to print 

Lưu ý: phải sử dụng Run as Script (F5) không Tuyên bố chạy (Ctl + Enter)

+0

Điều này rất hữu ích. Cảm ơn! – sunlover3

6

Đối với tôi, tôi chỉ có thể làm việc đó với

set serveroutput on format word_wrapped; 

Các wraped và quấn chỉ ném lỗi: lệnh sqlplus thất bại - không đủ lý lẽ

+1

Thất bại đã biến mất! +1 –

1

Nếu bạn không muốn tất cả các câu lệnh SQL của bạn được lặp lại, nhưng bạn chỉ muốn xem cá dễ dàng kết quả của kịch bản của bạn, làm theo cách này:

set echo on

REM MyFirstTable

set echo off

delete from MyFirstTable;

set echo on

REM MySecondTable

set echo off

delete from MySecondTable;

Kết quả của ví dụ trên sẽ giống như thế này:

-REM MyFirstTable

13 rows deleted.

-REM MySecondTable

27 rows deleted.

Các vấn đề liên quan