old 1: SELECT &GROUP_COL,
new 1: SELECT JOB,
Enter value for number_col: SAL
old 2: MAX(&NUMBER_COL) MAXIMUM
new 2: MAX(SAL) MAXIMUM
Enter value for table: EMP
old 3: FROM &TABLE
new 3: FROM EMP
Enter value for group_col: JOB
old 4: GROUP BY &GROUP_COL
new 4: GROUP BY JOB
SQL*Plus покажет следующее:
JOB MAXIMUM
---------- ----------
ANALYST 3000
CLERK 1300
MANAGER 2975
PRESIDENT 5000
SALESMAN 1600
Если нужно добавить символы непосредственно после переменной подстановки, нужно использовать точку после имени переменой для разделения переменной от символа, например:
SQL> SELECT * FROM EMP WHERE EMPNO='&X.01';
Enter value for X: 123
будет интерпретировано как
SQL> SELECT * FROM EMP WHERE EMPNO='12301';
Предположим, нужно расширить файл STATS, чтобы включить минимальное, суммарное и среднее значение столбца "number". Однако SQL*Plus запрашивает значения GROUP_COL дважды и один раз для значения NUMBER_COL в предыдущем примере и то, что каждый GROUP_COL или NUMBER_COL имеет единственный амперсанд в начале. Если добавить ещё три функции, используя один амперсанд, то SQL*Plus будет запрашивать значения четыре раза.
Можно избежать повторного запроса для группы и номера столбца добавлением второго амперсанда в начале GROUP_COL и NUMBER_COL в STATS. SQL*Plus автоматически определяет командой DEFINE любую переменную подстановки, предшествующую двумя амперсандами, но не определяет с одним амперсандом. Когда переменная определена SQL*Plus подставляет значение переменной для каждой переменной подстановки, которая ссылается на переменную (в форме &variable или &&variable). SQL*Plus не запросит значения переменной в этой сессии пока не выполнит команду UNDEFINE.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.