Друк тексту у вікні робочого аркуша SQL Oracle SQL Developer


90

Я використовую Oracle SQL (у SQLDeveloper, використовуючи аркуш SQL). Я хотів би надрукувати заяву до мого вибору, наприклад

PRINT 'Querying Table1';
SELECT * from Table1;

Що я використовую для друку / показу вихідного тексту? Це не Друк, бо це призводить до помилки: Змінна прив’язки Table1НЕ ОГОЛОШУЄТЬСЯ. DBMS_OUTPUT.PUT_LINE - невідома команда. (Очевидно, що я недосвідчений користувач SQLDeveloper та Oracle. Має бути якийсь синонім друку, але я маю проблеми з пошуком допомоги, не знаючи, що це таке.)

Відповіді:


143

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

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

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
Перший рядок встановлює серверний вивід у форматі з обгорткою; повинен бути встановлений сервісний вихід у форматі WRAPPED;
geographika

Я не можу змусити це працювати. 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
dwjohnston

9
У новіших версіях SQL Developer спочатку потрібно відкрити вікно виводу СУБД за допомогою простого рядка меню: Перегляд> Висновок Dbms.
Bruno Ranschaert

міг би, але знімок екрана і жодного тексту, був би +1 ха-ха
Девід Манн

41
PROMPT text to print

Примітка: потрібно використовувати Запуск як сценарій (F5), а не Заява про запуск (Ctl + Enter)


1
Це так корисно. Дякую!
sunlover3

Мені теж підходить для Run Statement (Ctl + Enter).
Паскаль Р.

21

Ви можете встановити ехо на:

set echo on
REM Querying table
select * from dual;

У SQLDeveloper натисніть F5, щоб запустити як сценарій.


Я прийняв це як відповідь, але я бачу, що інша відповідь має набагато більше пунктів, тому я змінив своє прийняття на це. Однак це мені вдалося, і це гарна відповідь.
thursdaysgeek

13

Ви можете помістити свій текст у вибране твердження, таке як ...

SELECT 'Querying Table1' FROM dual;

8

Основна відповідь залишила крок для нових встановлень, де потрібно відкрити вікно виводу DBM.

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

Потім я використовував сценарій:

dbms_output.put_line('Start');

Ще один сценарій:

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

7

Для мене я міг змусити це працювати

set serveroutput on format word_wrapped;

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


1

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

встановити відлуння

REM MyFirstTable

встановити відлуння

видалити з MyFirstTable;

встановити відлуння

REM MySecondTable

встановити відлуння

видалити з MySecondTable;

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

-REM MyFirstTable

13 рядків видалено.

-REM MySecondTable

27 рядків видалено.


0

Якщо я пропускаю початок - кінець, це помилка. Отже, для мене це працює (більше нічого не потрібно):

set serveroutput on;
begin
DBMS_OUTPUT.PUT_LINE('testing');
end;
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.