Как сделать вывод 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 шт):
Можно воспользиваться системными переменными 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.
ONsets the prompt to be the line number.
OFFsets the prompt to the value ofSQLPROMPT.
Вывод будет выглядеть вот так:
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.