批处理执行多个SQL文件到oracle
2015-08-12 15:15
671 查看
最近因为项目需要,打算写一个批处理程序,更新数据库中的表数据。写了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,不继续执行后边的文件,如何才能顺序执行批处理中的多个sql文件中的语句呢。
于是到网上找找,我能遇到的问题,别人应该也有遇到的,所以就查到了如下:
再准备一个全部执行的sql文件,我暂时叫它All.sql,内容如下:
语法和平时sql语法相同,可以用“--”注释某些不用的表,最后的exit表示顺序执行完成后则推出sqlplus环境。
然后再写一个a.bat文件,内容很简单,如下:
里面写了两行,第一行可用于执行过程中的信息保存到log.txt文件中,如果不需要保存日志信息,则可以使用第二行的代码
本人只在Windows环境中测试可以使用,Linux暂无环境,请自行测试。
参考出处:http://bbs.csdn.net/topics/390288596
目前我通过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,不继续执行后边的文件,如何才能顺序执行批处理中的多个sql文件中的语句呢。
于是到网上找找,我能遇到的问题,别人应该也有遇到的,所以就查到了如下:
解决方案:
在Windown环境中:
首先把所有的sql文件准备好,具体每个文件里面的内容这里就不列出来了。再准备一个全部执行的sql文件,我暂时叫它All.sql,内容如下:
--@Y:\表\a.sql --@Y:\表\b.sql --@Y:\表\c.sql @Y:\表\receive28.sql @Y:\表\receivetcs.sql @Y:\表\receiveattachment.sql @Y:\表\ContainerLists.sql @Y:\表\DocumentAttachedInformationList.sql @Y:\表\edocrealation.sql @Y:\表\EntryContainerInformationList.sql @Y:\表\EntryIdentityInformationList.sql @Y:\表\EportLocationInformationList.sql @Y:\表\GoodsInformationList.sql @Y:\表\LogisticsLocationInformationLis.sql @Y:\表\main.sql exit
语法和平时sql语法相同,可以用“--”注释某些不用的表,最后的exit表示顺序执行完成后则推出sqlplus环境。
然后再写一个a.bat文件,内容很简单,如下:
::sqlplus system/oracle@xe @all.sql>log.txt sqlplus system/oracle@xe @all.sql
里面写了两行,第一行可用于执行过程中的信息保存到log.txt文件中,如果不需要保存日志信息,则可以使用第二行的代码
在Linux环境中:
可以把bat文件写成下面这样就行了sqlplus -S /nolog <<EOF conn test/test@test @a.sql @b.sql @c.sql EOF
本人只在Windows环境中测试可以使用,Linux暂无环境,请自行测试。
参考出处:http://bbs.csdn.net/topics/390288596
相关文章推荐
- Oracle 数据列值拆分
- 积累的oracle操作
- 积累的oracle操作
- oracle 时间查询
- Oracle jdbc DB2、Oracle、MySQL、PostgreSQL,并取当前时间。
- oracle 查询最后一条记录
- 各种数据库(oracle、mysql、sqlserver等)在Spring中数据源的配置和JDBC驱动包
- CPP/VCPP_连接Oracle数据库-OCILIB
- ORACLE基本数据类型总结
- oracle的nvl函数的用法
- 【Oracle】PL/SQL提取一段字符串中的每个字符
- Oracle中删除用户下所有对象
- 关于关于Linux 系统中 oracle lsnrctl 无法启动问题
- ORACLE EXP不能导出空表的原因分析及解决方法
- 我眼中的Oracle Database Software 和 Oracle Database
- oracle A用户访问B用户的表aa
- oracle 11g导出空表
- oracle sql 优化大全
- Oracle PL/SQL 嵌套表的使用
- linux平台下Oracle database的安装与/etc/redhat-release