Я использую Oracle SQL (в SQLDeveloper, используя SQL Worksheet). Я хотел бы напечатать инструкцию перед моим выбором, например
PRINT 'Querying Table1';
SELECT * from Table1;
Что я использую для печати / отображения текста? Это не печать, потому что это дает мне ошибку: переменная привязки Table1 НЕ ОБЪЯВЛЯЕТСЯ. DBMS_OUTPUT.PUT_LINE - неизвестная команда. (Очевидно, я неопытный разработчик SQL и пользователь Oracle. Должен быть какой-то синоним для Print, но у меня проблемы с поиском помощи, не зная, что это такое.)





Вы могли бы установить эхо включить:
set echo on
REM Querying table
select * from dual;
В SQLDeveloper нажмите F5, чтобы запустить его как скрипт.
Вы можете поместить свой текст в оператор выбора, например ...
SELECT 'Querying Table1' FROM dual;

для простых комментариев:
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
Первая строка устанавливает вывод сервера в обернутом формате; должен быть установлен serveroutput в формате WRAPPED;
Я не могу заставить это работать. set serveroutput on format word_wrapped; begin dbms_output.put_line('hello world'); end; select * from dual дает мне: 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
В более новых версиях SQL Developer сначала нужно открыть окно вывода СУБД, используя верхнюю строку меню: «Вид»> «Вывод СУБД».
мог бы, но снимок экрана и никакого текста, было бы +1 хаха
PROMPT text to print
Примечание: должен использовать Запуск от имени сценария (F5) нет Оператор Run (Ctrl + Enter)
Это так полезно. Спасибо!
У меня работает и с оператором Run (Ctrl + Enter).
Для меня я мог заставить его работать только с
set serveroutput on format word_wrapped;
Обернутый и WRAPPED просто выдал ошибки: команда SQLPLUS не удалась - недостаточно аргументов
Если вы не хотите, чтобы все ваши операторы 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.
Если я опускаю начало - конец, это ошибка. Так что для меня это работает (больше ничего не нужно):
set serveroutput on;
begin
DBMS_OUTPUT.PUT_LINE('testing');
end;
Я принял это как ответ, но вижу, что в другом ответе намного больше очков, поэтому я изменил свое согласие на это. Однако у меня это сработало, и это хороший ответ.