Вы можете использовать переменные подстановки
DEFINE lname = 'Rogers'
DEFINE mgrid = 122
SELECT *
FROM employees
WHERE last_name = '&lname'
AND manager_id = '&mgrid';
Когда вы запускаете это в SQL-разработчике или SQL * Plus, вы получаете
old:SELECT *
FROM employees
WHERE last_name = '&lname'
AND manager_id = &mgrid
new:SELECT *
FROM employees
WHERE last_name = 'Rogers'
AND manager_id = 122
EMPLOYEE_ID FIRST_NAME LAST_NAME EMAIL PHONE_NUMBER HIRE_DAT JOB_ID SALARY COMMISSION_PCT MANAGER_ID DEPARTMENT_ID
----------- -------------------- ------------------------- ------------------------- -------------------- -------- ---------- ---------- -------------- ---------- -------------
134 Michael Rogers MROGERS 650.127.1834 26-08-06 ST_CLERK 2900 122 50
Или используете переменные связывания
VARIABLE lname VARCHAR2(40)
VARIABLE mgrid NUMBER
EXEC :lname := 'Rogers'
EXEC :mgrid := 122
VARIABLE x REFCURSOR
BEGIN
OPEN :x FOR SELECT *
FROM employees
WHERE last_name =:lname
AND manager_id =:mgrid;
END;
/
PRINT x
Результат
PL/SQL procedure successfully completed.
PL/SQL procedure successfully completed.
PL/SQL procedure successfully completed.
EMPLOYEE_ID FIRST_NAME LAST_NAME EMAIL PHONE_NUMBER HIRE_DAT JOB_ID SALARY COMMISSION_PCT MANAGER_ID DEPARTMENT_ID
----------- -------------------- ------------------------- ------------------------- -------------------- -------- ---------- ---------- -------------- ---------- -------------
134 Michael Rogers MROGERS 650.127.1834 26-08-06 ST_CLERK 2900 122 50