См. Статью ниже.Он ответит на ваш вопрос.
https://blogs.oracle.com/opal/sqlplus-101-substitution-variables#2_7
Я приведу для вас пример на основе этой статьи в блоге.
Создание фиктивной таблицы:
CREATE TABLE t(x NUMBER, t VARCHAR2(255));
INSERT INTO t(x, t) VALUES (1, 'Example');
COMMIT;
Сценарий ниже был сохранен в C: \ Users \ William .Имя файла: example.sql .
SELECT *
FROM &1
;
Теперь из SQL Developer я выполняю:
@C:\Users\William\example.sql t
Обратите внимание, что когда выпередавая параметр в скрипт, как это, вы передаете текстовое значение, которое хранится в переменных с неявным именем подстановки.Переменная подстановки именуется в соответствии с ее порядком (например, & 1, затем & 2, затем & 3 и т. Д.).
Это вывод сценария:
old:SELECT *
FROM &1
new:SELECT *
FROM t
X T
-- ----------
1 Example
Возможно, вам потребуется некоторое время, чтобы рассмотретьдругие решения проблемы, которую вы решаете.Вам может не потребоваться выполнить скрипт через разработчика SQL.Возможно, вам лучше создать процедуру, которая генерирует динамический SQL на основе параметров, которые вы передаете в процедуру.Затем вы могли бы использовать EXECUTE IMMEDIATE в динамическом операторе SQL внутри процедуры.
Лично я мог бы найти этот метод более полезным при выполнении таких действий, как ETL (в отличие от запросов).Опять же, я не эксперт, и, возможно, есть даже лучшие решения.