2012-10-01 80 views
3

我想用一个批处理文件在一个序列中执行多个sql .. IE:sql2脚本调用一个由sql1脚本创建的表..等..Oracle 11g - 运行windows批处理文件在sqlplus中运行多个sql文件

这里是批处理代码我迄今.. 它的工作原理运行单个SQL文件,但我需要它来提前运行的第一个,然后再下一个.. 感谢。

@ECHO OFF 
echo. 
echo. 
SET /P uname=Username: 
echo. 
echo. 
SET /P pass=Password: 
echo. 
echo. 
SET /P mydatabase=Database: 
echo. 
echo. 
set oracle_sid=ins 

sqlplus -s %uname%/%pass%@%mydatabase% @J:/A/scripts/_TABLES/Table1_.sql \n 
sqlplus -s %uname%/%pass%@%mydatabase% @J:/A/scripts/_TABLES/Table2_.sql \n 
sqlplus -s %uname%/%pass%@%mydatabase% @J:/A/scripts/_TABLES/Table3_.sql \n 
sqlplus -s %uname%/%pass%@%mydatabase% @J:/A/scripts/_TABLES/Table4_.sql \n 
sqlplus -s %uname%/%pass%@%mydatabase% @J:/A/scripts/_TABLES/Table5_.sql \n 
sqlplus -s %uname%/%pass%@%mydatabase% @J:/A/scripts/_TABLES/Table6_.sql \n 
sqlplus exit 
pause 

回答

8

制作'driver'sql脚本。

里面将类似于此:

@Table1_.sql 
@Table2_.sql 
@Table3_.sql 
@Table4_.sql 

然后就从OS

+0

如何将此SQL文件(例如&1,&2和&3)中收到的参数传递到启动的四个文件? – Benobab

+0

要运行'driver'SQL脚本,请打开命令行并使用SQLPlus运行:“sqlplus用户名/密码@ sid @ {路径至驱动程序 - sql-script} \ driver.sql” –

0

再次呼吁这个还是可以运行它们放在一起。

cat Table1_.sql > /tmp/temp.sql 
cat Table1_.sql >> /tmp/temp.sql 
cat Table1_.sql >> /tmp/temp.sql 
sqlplus USERNAME/[email protected] @/tmp/temp.sql