Oracle устанавливает несколько системных переменных


Можно ли задать несколько системных переменных в одной команде?

Например, установить следующие системные переменные в одной строке?

SET COLSEP '    '
SET ECHO OFF
SET FEEDBACK OFF
SET HEADING OFF
SET LINESIZE 10000
SET NEWPAGE NONE
SET TRIMSPOOL ON

Проверено http://docs.oracle.com/cd/B19306_01/server.102/b14357/ch12040.htm#i2699283 но не вижу в этом примера.

1 2

1 ответ:

Is it possible to set multiple system variables in a single command?

Да, вы можете. Просто укажите пары имя/значение переменной, используя пробел в качестве разделителя между новым значением предыдущей переменной и именем следующей переменной. Вот пример:

/* display variables' current values */
SQL> show colsep echo feedback heading linesize

colsep " "
echo OFF
FEEDBACK ON for 6 or more rows
heading ON
linesize 80

/* Assign new values */
SQL> set colsep "|" echo on echo on feedback off heading off linesize 1000;

/* Make sure changes are in effect */
SQL> show colsep echo feedback heading linesize

colsep "|"
echo ON
feedback OFF
heading OFF
linesize 1000


SQL> spool off;

Примечание: Когда количество системных переменных больше, чем несколько, этот подход резко снизит читабельность. Поэтому было бы лучше выделить каждой паре переменная / значение свою собственную команду SET.