Приведенный на рисунке пример создает инструкцию SELECT
, возвращающую данные обо всех сотрудниках подразделения, нанятых на работу в конкретный день.
Этот сценарий динамически создает предикат — предложение WHERE
.
Примечание 1. После задания пользовательской переменной для ее удаления необходимо использовать команду UNDEFINE
.
Первая инструкция SELECT
предлагает ввести номер подразделения. Если ни один номер подразделения не введен, функция DECODE
рассматривает номер подразделения как неопределенный (NULL
), и пользователю предлагается ввести дату приема на работу.
Если дата приема на работу не введена, функция DECODE
рассматривает дату приема на работу как неопределенную. Создаваемое динамически предложение WHERE
также оказывается неопределенным, что инициирует возвращение второй инструкцией SELECT
всех строк из таблицы EMPLOYEES
.
Примечание 2. Переменная NEW_V[ALUE
] определяет переменную для хранения значения столбца.
Сослаться на переменную можно в командах TTITLE
. Используйте переменную NEW_VALUE
, чтобы вывести значения столбца или дату в верхнем заголовке. Необходимо включить этот столбец в команду BREAK
при выполнении действия SKIP PAGE
. Имя переменной не может содержать знак #.
Переменная NEW_VALUE
полезна для основных/подробных отчетов, в которых для каждой страницы создается новая главная запись.
IF ( не введен) THEN IF ( не введена) THEN вернуть пустую строку ELSE вернуть строку ‘WHERE hire_date = TO_DATE('', 'DD-MON-YYYY')’ ELSE IF ( не введена) THEN вернуть строку ‘WHERE department_id = введенный ' ELSE вернуть строку ‘WHERE department_id = введенный AND hire_date = TO_DATE(' ', 'DD-MON-YYYY')’
|
Возвращаемой строкой становится значение переменной DYN_WHERE_CLAUSE
, которая будет использоваться во второй инструкции SELECT
.
Примечание. Используйте для этих примеров SQL*Plus.
После выполнения первого примера, приведенного на слайде, пользователю будет предложено ввести значения DEPTNO
и HIREDATE
:
Создается следующее значение для MY_COL
:
При выполнении второго примера данного слайда будет получен следующий результат:
Далее: Использование таблицы SQL