Теория для лабораторной работы №3 - "Запросы и основы использования SQL*PLUS", страница 12

 

Например, если переменная  SORTCOL имеет значение JOB  и переменная MYTABLE имеет значение EMP, SQL*Plus выполняет команды

 

SQL> BREAK ON &SORTCOL

SQL> SELECT &SORTCOL, SAL

  2  FROM &MYTABLE

  3  ORDER BY &SORTCOL;

 

если бы они были

 

SQL> BREAK ON JOB

SQL> SELECT JOB, SAL

  2  FROM EMP

  3  ORDER BY JOB;

 

Можно использовать переменные подстановки везде в командах SQL и SQL*Plus за исключением первого слова, введённого в командной строке. Когда SQL*Plus обнаруживает не определённую переменную подстановки в команде, то он запрашивает её значение.

Можно ввести любую строку на запрос даже содержащую пробелы и знаки пунктуации. Если команда SQL содержащая ссылку должна иметь кавычки вокруг переменной и они в ней не включены, пользователь должен ввести их на запрос.

 

SQL*Plus читает ответ с клавиатуры даже если ввод или вывод с терминала переопределён в файл. Если терминал не доступен (например, если исполняется пакетный файл) SQL*Plus использует перенаправленный файл.

После ввода значения на запрос, SQL*Plus показывает строку, содержащую переменную подстановки, дважды: один раз – до подстановки значения и другой – после подстановки. Вывод можно подавить устанавливая командой SET переменную VERIFY в OFF.

 

Пример. Использование переменных подстановки

Создаётся командный файл с именем STATS для расчёта статистики по подгруппе (максимальное значение) в числовом столбце:

 

SQL> CLEAR BUFFER

SQL> INPUT

  1  SELECT   &GROUP_COL,

  2           MAX(&NUMBER_COL) MAXIMUM

  3  FROM     &TABLE

  4  GROUP BY &GROUP_COL

  5

SQL> SAVE STATS

Created file STATS

 

Теперь нужно выполнить командный файл STATS и ответить как показано ниже на запросы значений:

 

SQL>  @STATS

Enter value for group_col: JOB