Определение переменных времени выполнения
57.50K
Category: databasedatabase

Определение переменных времени выполнения

1. Определение переменных времени выполнения

1
А.М. Гудов

2.

Интерактивные отчеты
Ограничения для отчета
отсутствуют
Title
------President
Employee
-----------
Отчет ограничен словом
"Sales"
Title
------Sales Rep
Employee
-----------
Sales Rep
VP, Sales
Stock Clerk
2
А.М. Гудов

3.

Переменные подстановки
• Переменные подстановки в SQL*Plus используются для
временного хранения значений.
– Типы переменных с одним амперсандом;
– Команды DEFINE и ACCEPT.
• Цели использования переменных:
– Определение интервала дат;
– Выборка данных по конкретному пользователю;
– Выборка данных по конкретному отделу.
• Обмен переменными между командами SQL.
• Динамическое изменение верхних и нижних
колонтитулов страниц.
3
А.М. Гудов

4.

Переменные подстановки с одним амперсандом
• Задать переменные в командах SQL можно с помощью
амперсанда (пример: &переменная).
• Пользователь может динамически ограничивать
выбираемые строки с помощью переменной
подстановки.
• Значение переменной запрашивается при каждом
выполнении команды.
SQL> SELECT
2 FROM
3
WHERE
id, last_name, salary
s_emp
dept_id = &department_number;
Enter value for department_number: 31
4
А.М. Гудов

5.

Команда SET VERIFY
Задает вывод текста команды до и после того, как
SQL*Plus замещает переменные подстановки
значениями. Этот режим задействуется командой
SET VERIFY ON.
SQL> SET VERIFY ON
SQL> SELECT
id, last_name, salary
2 FROM
s_emp
3 WHERE
dept_id = &department_number;
Enter value for department_number: 31
old
new
5
3: WHERE dept_id = &department_number
3: WHERE dept_id = 31
А.М. Гудов

6.

Подстановка текстовых переменных и дат
• Текстовые строки и даты должны быть заключены
в апострофы.
• Заранее заключите амперсанд и имя переменной в
апострофы, чтобы не вводить их во время
выполнения.
SQL> SELECT
2 FROM
3
WHERE
id, last_name, salary
s_emp
title = '&job_title';
Enter value for job_title: Stock Clerk
6
А.М. Гудов

7.

Указание имен столбцов, выражений и
текстовых строк во время выполнения
С помощью переменных подстановки можно задать:
– Условие WHERE.
– Предложение ORDER BY.
– Выражение для столбца;
– Имя таблицы;
– Целую команду SELECT.
SQL> SELECT
2 FROM
3 WHERE
id, &column_name
s_ord
&condition;
Enter value for column_name: total
Enter value for condition: payment_type = 'CASH'
7
А.М. Гудов

8.

Определение переменных пользователя
• Для определения переменных используются две команды
SQL*Plus:
– для создания переменной типа CHAR.
DEFINE [переменная [= значение]]
– для чтения введенного значения и сохранения его в
переменной.
ACCEPT переменная [тип] [FORMAT] [PROMPT текст]
[HIDE]
• Если в команде DEFINE требуется задать строку с символом
пробела, эта строка должна быть заключена в апострофы.
8
А.М. Гудов

9.

Команды ACCEPT, UNDEFINE
• Создает приглашение к вводу данных, удобное для
пользователя.
• Явно задает переменные типа NUMBER и DATE.
• Предотвращает отображение данных, введенных
пользователем, в целях секретности.
ACCEPT p_dname PROMPT 'Provide the department name: '
ACCEPT p_salary NUMBER PROMPT 'Salary amount: '
ACCEPT pswd CHAR PROMPT 'Password: ' HIDE
• Переменная сохраняет значение:
– до ее очистки командой UNDEFINE.
– до окончания сеанса работы в SQL*Plus.
9
А.М. Гудов

10.

Передача значений переменных в
командный файл
• Создайте файл с командой SELECT.
• В команде SELECT используйте ссылку типа
“&номер“ (0 - 9).
• При запуске файла из командной строки задайте
значение параметра после имени файла.
Последовательность, в которой указаны параметры,
имеет значение.
SQL> START my_file value1 value2
10
А.М. Гудов

11.

Практическое занятие
1. Сколько раз запрашивается значение переменной с одним амперсандом?
2. Команда ACCEPT является командой SQL? (Да/Нет)
3. Создать командный файл для выборки информации о каждом служащем,
дата начала работы которого находится в пределах определенного диапазона.
Выходные данные должны содержать идентификатор служащего, имя и
фамилию сгруппированные вместе. Диапазон дат должен запрашиваться
командой ACCEPT.
4. Создать командный файл для получения списка имен и номеров клиентов.
Условие поиска должно позволять производить поиск независимо от регистра
символов.
5. Создать отчет, содержащий имя торгового представителя, имя клиента и
общую сумму продаж по каждому клиенту. Подсчитать общую сумму по
каждому торговому представителю. Номер региона должен вводится по
запросу.
11
А.М. Гудов
English     Русский Rules