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

·  использовать команду START для получения значений

·  запрашивать значения

Определение переменных пользователя

Можно определять переменные, называемые переменными пользователя для повторного использования в одном командном файле, используя команду SQL*Plus  DEFINE.

 

Пример. Определение переменной пользователя

Для определения переменной пользователя EMPLOYEE и присваивания ей значения "SMITH", нужно ввести следующую команду:

 

SQL> DEFINE EMPLOYEE = SMITH

 

Для подтверждения определения переменной, нужно ввести DEFINE и имя переменной:

 

SQL> DEFINE EMPLOYEE

 

SQL*Plus покажет определение:

 

DEFINE EMPLOYEE       = "SMITH" (CHAR)

 

Для просмотра всех переменных пользователя, нужно ввести просто DEFINE. Отметим, что любая переменная пользователя, определённая неявно через DEFINE принимает только значение типа CHAR (это значит, что значение, присваиваемое переменной всегда рассматривается как CHAR). Можно определить переменную пользователя типа NUMBER явно с помощью команды ACCEPT.

Для удаления переменной пользователя, используется команда UNDEFINE.

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

Рассмотрим запрос, который выводит данные о служащих, занимающих должность SALESMAN:

 

SELECT * FROM emp WHERE job=’SALESMAN’

                   

Предположим, что нужно записать запрос, который показывает всех служащих, занимающих различные должности, а не только должность SALESMAN. Это можно сделать редактируя значения переменных в клаузе WHERE каждый раз запуская команду, но это не самый лёгкий способ.

 

Используя переменные подстановки вместо значений SALESMAN в клаузе WHERE, можно добиться таких же результатов как если бы писать значения непосредственно в командной строке.

 

Переменная подстановки – это имя переменной пользователя, перед которым ставится один или два знака &. Когда SQL*Plus обнаруживает переменную подстановки в команд, он выполняет команду так если бы она содержала значение переменной подстановки, а не саму переменную.