最近因为项目需要,打算写一个批处理程序,更新数据库中的表数据。写了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文件中的语句呢。

于是到网上找找,我能遇到的问题,别人应该也有遇到的,所以就查到了如下:

解决方案:

在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

批处理执行多个SQL文件到oracle的更多相关文章

  1. 数据库操作中如何批量执行多个sql文件?

    数据库操作中如何批量执行多个sql文件? 1.应用场景:在历史数据导入过程中,会发现有很多个表形成的.sql文件,要是一个一个文件去手动执行,实在是费时间,所以采取以下方法. 2.将文件放在一定位置, ...

  2. Ubuntu下执行mysql的sql文件

    Ubuntu下执行mysql的.sql文件   方法一: 1.执行此命令,会提示输入mysql的root账户的密码,验证成功后,会在dbname这个数据库中执行filename.sql这个脚本,其中f ...

  3. 执行超大的.sql文件处理,100M++

    sqlcmd的命令参数如下: 1    [-U 登录 ID]             [-P 密码] 2  [-S 服务器]                [-H 主机名]           [-E ...

  4. navicat执行大容量的.sql文件时的设置

    如果有主外键关联等,执行报错,则去掉中间的对勾保留第三个对勾试试.第三个对勾 是 手动提交(不自动提交,估计是全部导入到数据库中之后再一起提交,而不是导入一条sql语句就提交一次) 如果同时不勾选第2 ...

  5. Navicat for MySQL 批量执行多个 SQL 文件

    文件合并 type *.sql >> aaa.sql 执行sql文件 右键点击数据库

  6. sql cmd命令执行sqlserver的sql文件

    有的时候,我们通过Log Explorer工具根据日志生成的回滚脚本,或者其他情况我们得到的脚本文件,通过sqlserver打开脚本文件的方式不爽,我们可以这样: 方式一: osql -S . -U ...

  7. dos命令执行mysql的sql文件

    1.cmd进入dos窗口 2.输入cd+ mysql的bin目录后进入bin文件下 3.进入控制台:mysql -uroot -proot  回车 4.选择数据库:use mydata go 回车 5 ...

  8. shell脚本中怎样同时执行多个.sql文件,并把结果写入文件中(转)

    转载:http://joewalker.iteye.com/blog/408879命令行下具体用法如下: mysqldump -u用戶名 -p密码 -d 数据库名 表名 > 脚本名;导出整个数据 ...

  9. oracle 基础 执行sql文件

    Oracle执行外部文件: c:>sqlplus user/pwd@db sql>@new.sql 执行多个sql文件: 1.把所有的文件都放在同一个目录下,然后在命令行里执行命令:    ...

随机推荐

  1. point-to-point(点对点) 网口

    点对点连接是两个系统或进程之间的专用通信链路.想象一下直接连接两个系统的一条线路.两个系统独占此线路进行通信.点对点通信的对立面是广播,在广播通信中,一个系统可以向多个系统传输. 点对点通信在OSI协 ...

  2. 【c++习题】【17/5/22】重载数组下标操作符

    一.写出程序运行结果 1#include <iostream > using namespace std; int a[10]={1,2, 3, 4, 5, 6, 7, 8, 9, 10} ...

  3. RAID 工作模式

    RAID 工作模式 RAID磁盘阵列 优点: 1.提高传输速率:RAID通过在多个磁盘上同时存储和读取数据来大幅提高存储系统的数据吞吐量. 2.RAID可以达到单个磁盘驱动器几倍.几十倍甚至上百倍的速 ...

  4. iOS_多线程(二)

    上篇中我们分享了NSThread.NSOperation&NSOperationQueue如何实现多线程,今天我们来看下第三种实现多线程的方式:GCD(Grand Central Dispat ...

  5. 斯坦福机器学习视频笔记 Week9 异常检测和高斯混合模型 Anomaly Detection

    异常检测,广泛用于欺诈检测(例如“此信用卡被盗?”). 给定大量的数据点,我们有时可能想要找出哪些与平均值有显着差异. 例如,在制造中,我们可能想要检测缺陷或异常. 我们展示了如何使用高斯分布来建模数 ...

  6. 关于发邮件报错535 Error:authentication failed&553 authentication is required

    553 authentication is required:这个错误的意思是你必须需要认证. 也就是说,你连接smtp服务器的时候必须使用密码来连接:下面代码红色那句 代码: @Override p ...

  7. Caused by: org.apache.ibatis.binding.BindingException: Parameter 'parameter' not found.解决

    Caused by: org.apache.ibatis.binding.BindingException: Parameter 'company' not found. Available para ...

  8. myeclipse下搭建hadoop2.7.3开发环境

    需要下载的文件:链接:http://pan.baidu.com/s/1i5yRyuh 密码:ms91 一  下载并编译  hadoop-eclipse-plugin-2.7.3.jar 二  将had ...

  9. vue.js计算属性 vs methods

    计算属性:Vue.js 模板内的表达式非常便利,但是缺点就是只能用于简单的运算,如果模板中有太多的逻辑运算会让模板不堪重负且难以维护.恰恰计算属性可以处理复杂的逻辑运算,也就是说对于任何复杂逻辑你都应 ...

  10. Linux系统memcached安装

    [memcached安装] Linux系统安装memcached可以自动安装,也可以手动编译安装,这里使用手动编译安装 1.Linux系统安装memcached,首先要先安装libevent库. 下载 ...