日期:2014-05-17  浏览次数:20799 次

批处理导入多个.SQL文件到oracle
最近因为项目需要,打算写一个批处理程序,更新数据库中的表数据。写了3个sql文件:a.sql,b.sql,c.sql,在这三个文件中,实现了向表中插入数据的操作。
目前我通过SQLPLUS可以执行一个SQL文件,例如:
sqlplus test/test@test @a.sql
请问如何在一个批处理文件中,按顺序执行三个sql文件。
我新建了一个a.bat文件,在文件中填写
sqlplus test/test@test @a.sql
@b.sql
@c.sql
执行文件a.bat,只是执行文件a.sql,执行完文件a.sql,不继续执行后边的文件。
请高手给予指点

------解决方案--------------------
你可以也写3个.bat文件的,a.bat,b.bat,c.bat
或者把所有sql 都放在一个文件里
------解决方案--------------------
直接编辑命令窗口
写入
@f:\abc\a.sql
@f:\abc\b.sql
@f:\abc\c.sql

保存为a.pdc文件
然后直接用@执行该文件就OK了。。。
------解决方案--------------------
把bat文件写成下面这样就行了

sqlplus -S /nolog <<EOF
    conn test/test@test
    @a.sql
    @b.sql
    @c.sql
EOF
------解决方案--------------------
上面是linux/unix下写法,
如果是windows, 可以另外写个文件list.sql,内容是
@a.sql
@b.sql
@c.sql
a.bat里面是
sqlplus test/test@test @list.sql