Вопрос

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

PRINT 'Querying Table1';
SELECT * from Table1;

Что я могу использовать для печати / отображения текста? Это не Print, потому что это дает мне ошибку: Переменная Bind 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

Примечание. необходимо использовать    Запускать как скрипт (F5) не    Выполнить оператор (Ctl + Enter)

Вы можете установить эхо на:

set echo on
REM Querying table
select * from dual;

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

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

SELECT 'Querying Table1' FROM dual;

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

set serveroutput on format word_wrapped;

Обернутые и WRAPPED только что выдавали ошибки: команда SQLPLUS не выполнена - недостаточно аргументов

В основном ответе пропущен шаг для новых установок, когда нужно открыть окно вывода dbms.

 введите описание изображения здесь

Тогда скрипт, который я использовал:

dbms_output.put_line('Start');
<Ч>

Еще один скрипт:

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

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

  

включить эхо

     

REM MyFirstTable

     

отключить эхо

     

удалить из MyFirstTable;

     

включить эхо

     

REM MySecondTable

     

отключить эхо

     

удалить из MySecondTable;

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

  

-REM MyFirstTable

     

13 строк удалено.

     

-REM MySecondTable

     

27 строк удалено.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top