2012-10-01 78 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