2008-10-10 6 views
69

Я использую Oracle SQL (в SQLDeveloper, используя рабочий лист SQL). Я хотел бы распечатать заявление перед моим выбором, напримерПечатать текст в окне SQL Works SQL SQL Developer

PRINT 'Querying Table1'; 
SELECT * from Table1; 

Что я могу использовать для вывода текста/вывода текста? Это не Печать, потому что это дает мне ошибку: Bind Variable Table1 НЕ ОБНАРУЖЕН. DBMS_OUTPUT.PUT_LINE - неизвестная команда. (Очевидно, что я неопытный SQLDeveloper и пользователь Oracle Там должен быть какой-то синоним для печати, но у меня возникают проблемы с поиском помощи на него, не зная, что это такое.).

ответ

118

enter image description here

для простых комментариев:

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

Первая строка набора serveroutput в формате wraped; должен быть установить serveroutput в формате WRAPPED; – geographika 2010-04-16 13:24:55

+0

Спасибо @geographika – 2011-04-06 17:55:24

+0

хороший, помог мне. +1 – 2012-03-02 03:56:59

18

Вы могли set echo к на:

set echo on 
REM Querying table 
select * from dual; 

В SQLDeveloper нажмите F5 для запуска в качестве сценария.

+0

Я принял это как ответ, но я вижу, что другой ответ имеет намного больше очков, поэтому я изменил свое согласие на это. Однако это работало для меня, и это хороший ответ. – thursdaysgeek 2014-01-25 00:48:32

12

Вы можете поместить текст в отборном заявлении, такие как ...

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

Примечание: должны использовать Запуск сценариев (F5) не Заявление о проделанной работе (Ctl + Enter)

6

Для меня я мог только заставить его работать с

set serveroutput on format word_wrapped; 

В wraped и WRAPPED просто бросил ошибки: команда SQLPLUS не удалось - не хватило аргументов

1

Если вы не хотите, чтобы все ваши заявления SQL, которые будут выводиться, но вы только хотите, чтобы увидеть легко идентифицировать результаты вашего сценария, сделайте это так:

set echo on

REM MyFirstTable

set echo off

delete from MyFirstTable;

set echo on

REM MySecondTable

set echo off

delete from MySecondTable;

выход из приведенного выше примера будет выглядеть примерно так:

-REM MyFirstTable

13 rows deleted.

-REM MySecondTable

27 rows deleted.