【问题标题】:Oracle 11g - run windows batch file to run multiple sql files in sqlplusOracle 11g - 运行windows批处理文件在sqlplus中运行多个sql文件
【发布时间】:2023-04-04 18:15:01
【问题描述】:

我想用一个批处理文件依次执行多个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

【问题讨论】:

    标签: sql oracle11g sqlplus batch-file


    【解决方案1】:

    制作一个“驱动程序”的 sql 脚本。

    里面看起来像这样:

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

    然后从操作系统调用一次

    【讨论】:

    • 如何将这个 SQL 文件中收到的参数(例如 &1、&2 和 &3)传递给启动的四个文件?
    • 要运行“驱动程序”SQL 脚本,请打开命令行并使用 SQLPlus 运行:“sqlplus username/password@sid @{path-to-driver-sql-script}\driver.sql”
    【解决方案2】:

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

    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
    

    【讨论】:

      猜你喜欢
      • 2012-12-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-10
      • 1970-01-01
      • 2020-06-01
      • 2017-11-30
      • 2017-07-12
      相关资源
      最近更新 更多