将参数从批处理文件传递到Oracle SQL文件

adv*_*tej 1 sql oracle batch-file

我有一个更新某个表的SQL文件.但是,表名取决于安装软件的计算机名称.(像:TableFooBar-MyMachine).我必须编写一个调用Oracle SQL脚本的批处理文件,该脚本将更新此表.

那么,BatchFile - >更新.Sql - > TableFooBar-MyMachine

更新.Sql会有如下声明:

Update TableFooBar-<Machine-Name> where fooid = -99;
Run Code Online (Sandbox Code Playgroud)

此批处理文件需要在许多计算机上运行.这些表实际上有很多更新语句.我不希望别人编辑sql文件.相反,如果我在批处理文件中设置机器名并将其传递给sql,我已经完成了!如何将机器名称参数传递给.sql文件来实现此目的?

sch*_*rik 6

你可以使用替换变量

update.sql

--
Update TableFooBar-&1 set column_foo='bar' where fooid = -99;
--
Run Code Online (Sandbox Code Playgroud)

然后打电话

sqlplus foo/bar@db @update.sql <Machine-Name>
Run Code Online (Sandbox Code Playgroud)