Если использовать одну и ту же подставляемую переменную с символом & в одной команде несколько раз, значение будет запрашиваться каждый раз заново:
SQL> select max(&col), avg(&col), min(&col) from &tab;
Введите значение для col: sal Введите значение для col: sal Введите значение для col: sal Введите значение для tab: emp прежний 1: select max(&col), avg(&col), min(&col) from &tab новый 1: select max(sal), avg(sal), min(sal) from emp
MAX(SAL) AVG(SAL) MIN(SAL) ---------- ---------- ---------- 5000 2073,21429 800
Чтобы значение переменной запрашивалось только один раз, используется подстановка с двумя амперсантами (&&):
SQL> c /(&col/(&&col
1* select max(&&col), avg(&col), min(&col) from &tab SQL> c /(&col/(&&col
1* select max(&&col), avg(&&col), min(&col) from &tab SQL> c /(&col/(&&col
1* select max(&&col), avg(&&col), min(&&col) from &tab SQL> /
Введите значение для col: sal Введите значение для tab: emp прежний 1: select max(&&col), avg(&&col), min(&&col) from &tab новый 1: select max(sal), avg(sal), min(sal) from emp
MAX(SAL) AVG(SAL) MIN(SAL) ---------- ---------- ---------- 5000 2073,21429 800