Это делается помещением амперсанда с последующим числом в командном файле вместо переменной подстановки. Каждый раз, когда запускается командный файл, START заменяет каждый &1 в файле первым значением (называемом аргументом)после START filename, затем заменяет каждый &2 вторым значением и т.д..
Например, можно включить следующие команды в командный файл, называемый MYFILE:
SELECT * FROM EMP
WHERE JOB='&1'
AND SAL=&2
В следующей команде START SQL*Plus подставит CLERK вместо &1 и 7900 вместо &2 в командном файле MYFILE:
SQL> START MYFILE CLERK 7900
Когда используются аргументы с командой START, SQL*Plus определяет каждый параметр в командном файле значением соответствующего аргумента.
Пример. Передача параметров через START
Для создания нового командного файла, основанного на SALES, который принимает параметр определяющий работу, которая будет показана, нужно ввести
SQL> GET SALES
1 COLUMN ENAME HEADING SALESMAN
2 COLUMN SAL HEADING SALARY FORMAT $99,999
3 COLUMN COMM HEADING COMMISSION FORMAT $99,990
4 SELECT EMPNO, ENAME, SAL, COMM
5 FROM EMP
6* WHERE JOB = 'SALESMAN'
SQL> CHANGE /SALESMAN/&1
6* WHERE JOB = '&1'
SQL> 1
1* COLUMN ENAME HEADING SALESMAN
SQL> CHANGE /SALESMAN/&1
1* COLUMN ENAME HEADING &1
SQL> SAVE ONEJOB
Created file ONEJOB
Теперь нужно выполнить командный файл с параметром CLERK:
SQL> START ONEJOB CLERK
SQL*Plus показывает строку команды SQL, которая содержит параметр, до и после замены параметра его значением и затем выводит:
Old 3: WHERE JOB = '&1'
new 3: WHERE JOB = 'CLERK'
EMPNO CLERK SALARY COMMISSION
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.