Как сделать вывод ECHO без номеров строк?

Есть несколько SQL и PL/SQL скриптов, которые запускаются вместе в пакете через SQL*Plus.

Я устанавливаю SET ECHO OFF и SET ECHO ON в нужных местах скриптов для вывода запускаемого кода.

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

SQL> DECLARE
  2      ct number := 0;
  3      ctChanges number := 0;
  4  BEGIN
  5      select count(*) into ct
  6      from dual;
  7      /* rest of code block... */
  8      dbms_output.put_line ('some specific message');
  9  END;
 10  /
some specific message

PL/SQL procedure successfully completed.

Этот вывод сохраняется как лог выполнения и позднее можно получить доступ к нему в виде текстового файла.

Однако, недостатком этого формата вывода является то, что если скопировать определенный участок кода для того, чтобы запустить его снова, например, в SQL*Plus или SQL Developer, то надо сначала в редактире убрать номера строк.

Возможно ли установить в SQL*Plus, чтобы он выводил код, как показано выше, но без номеров строк?


Свободный перевод вопроса Oracle SQLPlus: Echo without line numbers? от участника @Kjartan


Ответы (1 шт):

Автор решения: 0xdb

Можно воспользиваться системными переменными SQLNUMBER, SQLPROMPT

set sqlprompt ''
set sqlnumber off

SQLN[UMBER] {ON | OFF}

Sets the prompt for the second and subsequent lines of a SQL command or PL/SQL block.
ON sets the prompt to be the line number.
OFF sets the prompt to the value of SQLPROMPT.

Вывод будет выглядеть вот так:

DECLARE
    ct number := 0;
    ctChanges number := 0;
BEGIN
    select count(*) into ct
    from dual;
    /* rest of code block... */
    dbms_output.put_line ('some specific message');
END;
/
some specific message

PL/SQL procedure successfully completed.

Свободный перевод ответа от участника @GMB

→ Ссылка