Подстановка переменных выполняется и для позиционных параметров, переданных при вызове сценария. На эти параметры можно ссылаться как на &1, &2 и т.д. Если значение для них в командной строке не передано, SQL*Plus запрашивает значения при вызове сценария. Подстановка позиционных параметров выполняется только при вызове сценария командами (или ее сокращенными формами @, @@).
Рассмотрим пример:
SQL> clear buffer
buffer очищена SQL> input
1 select &1 from &2 2 . SQL> save f:\subst.sql
Создано файл f:\subst.sql SQL> @f:\subst max(sal) emp
прежний 1: select &1 from &2 новый 1: select max(sal) from emp
MAX(SAL) ---------- 5000 SQL> @f:\subst
прежний 1: select &1 from &2 новый 1: select max(sal) from emp
MAX(SAL) ---------- 5000 SQL> undef 1 2
SQL> @f:\subst
Введите значение для 1: min(sal) Введите значение для 2: emp прежний 1: select &1 from &2 новый 1: select min(sal) from emp
MIN(SAL) ---------- 800