Oracle 11g - 运行Windows批处理文件在sqlplus中运行多个sql文件

时间:2012-10-01 19:21:35

标签: sql oracle11g sqlplus batch-file

我想使用单个批处理文件来执行序列中的多个sql。 IE:sql2脚本调用由sql1脚本创建的表..等等。

这是我到目前为止的批次代码.. 它可以运行单个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

2 个答案:

答案 0 :(得分:8)

制作'驱动程序'sql脚本。

里面的内容看起来与此相似:

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

然后从操作系统中调用一次

答案 1 :(得分:0)

或者你可以一起运行它们。

cat Table1_.sql > /tmp/temp.sql
cat Table1_.sql >> /tmp/temp.sql
cat Table1_.sql >> /tmp/temp.sql
sqlplus USERNAME/PASSWORD@DOMAIN @/tmp/temp.sql