Передача параметров в файл Oracle SQL из пакетного файла - PullRequest
1 голос
/ 26 мая 2011

У меня есть файл SQL, который обновляет определенную таблицу.Однако имя таблицы зависит от имени компьютера, на котором установлено программное обеспечение.(Что-то вроде: TableFooBar-MyMachine).Я должен написать пакетный файл, который вызывает сценарий Oracle SQL, который будет обновлять эту таблицу.

Итак, BatchFile -> Update.Sql -> TableFooBar-MyMachine

Обновление.Sql будет иметь следующий вид:

Update TableFooBar-<Machine-Name> where fooid = -99;

Этот пакетный файл должен работать на многих машинах.На самом деле в таких таблицах есть много операторов обновления.Я не хочу, чтобы люди редактировали файлы sql.Вместо этого, если я установлю имя компьютера в командном файле и передам его в sql, я почти закончу!Как передать параметр имени машины в файл .sql для достижения этой цели?

Ответы [ 2 ]

6 голосов
/ 26 мая 2011

вы можете использовать переменные подстановки

update.sql

--
Update TableFooBar-&1 set column_foo='bar' where fooid = -99;
--

и затем вызвать

sqlplus foo/bar@db @update.sql <Machine-Name>
2 голосов
/ 26 мая 2011

Да, вы можете сделать это, создав файл SQL из файла BATCH.

Это будет выглядеть так:

@echo off
set SQL = update.sql
ECHO connect username/password@database
ECHO Prompt Updating tables > %SQL%
ECHO Update TableFooBar-%1 where fooid = -99; >> %SQL%

sqlplus @update.sql
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...