转 : ANT 调用sqlplus 客户端
Jenkins安装与配置 (版本控制)
1
用ant脚本执行sql语句
现在我需要写一个ant脚本来实现项目安装,情况是这样的,客户现在运行的版本可能是2.0,安装目录里可能有REL_1_0,REL_2_0这些文件夹,里面有sql脚本,这些都是已经运行过的sql脚本,现在我发一个新的版本给客户,这个时候增加了一个新的sql脚本,所以安装目录里会有REL_1_0,REL_2_0,REL_3_0,我怎么写ant脚本,让它只运行REL_3_0里的sql脚本呢? 收起
JavaMenSu | 浏览 3310 次
发布于2010-08-04 14:18 最佳答案
两步即可:
1.将执行sql语句的命令写在一个 xx.bat文件里面
2.在build.xml脚本里 使用 exec标签来执行bat文件即可
例如:<exec executable=" xx.bat" ></exec>
你们数据库是什么数据库呢?如果是oracle数据库,那么执行sql语句的命令是用 sqlplus user/pwd@db example.sql
关于ant脚本标签,请参考:http://hi.baidu.com/woxfy/blog/item/8359887a281899fe0ad1878d.html
2
1、build.xml 中执行sql 脚本
autocommit="true"
url="jdbc:oracle:thin:@10.128.x.x:1521:xxsid" src="data.sql" print="yes" output=
"sql_out.txt">
autocommit="true"
url="jdbc:oracle:thin:@10.128.x.x:1521:xxsid" src="data.sql" print="yes" output=
"sql_out.txt">
也可以在 ... 中直接包含一条或多条 sql 语句,默认分号分隔。脚本文件 data.sql 中可以写多个语句,也是默认分号分隔,可含 -- 注释符。说白了就是基本在 PL/SQL Developer 中可以怎么写,你的脚本文件中也可以怎么写,并且还能支持象 MySQL 的 // 那样的注释符。
像如下那样的SQL脚本内容(data.sql)
3.
相信大部分开发人员都对ant有相当程度的了解,为什么呢?简而言之,ant是个好工具,真的不错。
本人从ant学习过程中遇到一些问题,后来在解决的过程中,对ant有了更深一步的了解。所以决定把学习过程中一些不太清楚的地方总结一下,和大家交流沟通一下,对于我一个新手来说肯定有许多认识上的不足,希望大家多给指导。
<target name="buildLog">
<exec executable="svn" output="${build.logs}/buildLog.xml">
<arg line="log ../. --xml -r HEAD"/>
</exec>
<echo message="SVN log created successfully!" level="info"/>
</target>
这是我现在从事项目的一段ant脚本里面有一些不太明白的地方:
(1)exec 有什么作用?
exec可以调用系统命令,比如:
<target name="test">
<exec executable="cmd.exe">
<arg line="/c dir"/>
</exec>
</target>
上边的这段代码所起到的作用是打开命令输入框,/c转到c盘根目录,执行dir命令。
(line 空格分隔的命令行变量列表。)
(2)
<exec executable="svn" output="${build.logs}/buildLog.xml">
<arg line="log ../. --xml -r HEAD"/>
</exec>
这个的作用就是在svn工作空间下面执行下面的命令:
svn log ../. --xml -r HEAD,把生成的结果保存到buildLog.xml文件中。
<exec executable="${base.dir}/email.bat" >
</exec>
<exec executable="cmd" dir="D:\" failonerror="true">
<arg line="/c del 1.bat" />
</exec>
failonerror:表示当出现错误时自动停止
4.
arg例子
<arg value="-l -a"/>
是一个含有空格的单个的命令行变量。
<arg line="-l -a"/>
是两个空格分隔的命令行变量。
<arg path="/dir;/dir2:\dir3"/>
是一个命令行变量,其值在DOS系统上为\dir;\dir2;\dir3;在Unix系统上为/dir:/dir2:/dir3 。
转自:http://www.cnblogs.com/hoojo/archive/2013/06/14/java_ant_project_target_task_run.html
参考:http://ant.apache.org/manual/Tasks/exec.html
Windows Users
The <exec> task delegates to Runtime.exec which in turn apparently calls ::CreateProcess. It is the latter Win32 function that defines the exact semantics of the call. In particular, if you do not put a file extension on the executable, only ".EXE" files are looked for, not ".COM", ".CMD" or other file types listed in the environment variable PATHEXT. That is only used by the shell.
Note that .bat files cannot in general by executed directly. One normally needs to execute the command shell executable cmd using the /c switch.
<target name="help">
<exec executable="cmd">
<arg value="/c"/>
<arg value="ant.bat"/>
<arg value="-p"/>
</exec>
</target>
5.
sqlplus catv/catv@oracle9 @drop-table.sql;
转 : ANT 调用sqlplus 客户端的更多相关文章
- 【原创分享·支付宝支付】HBuilder打包APP调用支付宝客户端支付
前言 最近有点空余时间,所以,就研究了一下APP支付.前面很早就搞完APP的微信支付了,但是由于时间上和应用上的情况,支付宝一直没空去研究.然后等我空了的时候,发现支付宝居然升级了支付逻辑,虽然目前还 ...
- Shell_Shell调用SQLPlus简介(案例)
2014-06-20 Created By BaoXinjian
- Unix/Linux中shell调用sqlplus的方式
Unix/Linux下,shell脚本调用sqlplus的几种方式介绍: 一.最简单的shell调用sqlplus #!/bin/bash sqlplus -S /nolog > sqlplus ...
- 性能测试培训:批量执行Jmeter脚本之ant调用
性能测试培训:批量执行Jmeter脚本之ant调用 poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标.在poptest的load ...
- SpringCloud使用Feign调用其他客户端带参数的接口,传入参数为null或报错status 405 reading IndexService#del(Integer);
SpringCloud使用Feign调用其他客户端带参数的接口,传入参数为null或报错status 405 reading IndexService#del(Integer); 第一种方法: 如果你 ...
- [20170617]vim中调用sqlplus.txt
[20170617]vim中调用sqlplus.txt --//以前写过一篇emacs下调用sqlplus的文章,一直想学emacs,受限制自己掌握vim,对学习它没有兴趣,原链接如下:--//htt ...
- Android应用内使用新浪微博SDK发送微博(不调用微博客户端)
需求 手头的一个应用需要添加分享到新浪微博的功能,这个功能在现在的应用上是非常的普遍的了. 分享到新浪微博,其实就是发送一条特定内容的微博,所以需要用到新浪微博SDK了. 微博SDK SDK的下载地址 ...
- sqlplus客户端 navicat 使用sqlplus OCI
链接:http://pan.baidu.com/s/1i5otsUT 密码:cbux 解压后放到某个目录下 这是我的 sqlplus客户端出现乱码 - 一支小白 - 博客园 http://www.c ...
- shell 调用 sqlplus
一.最简单的shell里调用sqlplus. $ vi test1.sh #!/bin/bashsqlplus -S /nolog > result.log <<EOFset hea ...
随机推荐
- html5权威指南:客户端分区响应图
客户端分区响应图:http://www.cnblogs.com/enjoymylift/p/5984338.html
- NSURLConnection基本使用
一.NSURLConnection的常用类 (1)NSURL:请求地址 (2)NSURLRequest:封装一个请求,保存发给服务器的全部数据,包括一个NSURL对象,请求方法.请求头.请求体.... ...
- 广播与P2P通道(下) -- 方案实现
在广播与P2P通道(上) -- 问题与方案 一文中,我们已经找到了最优的模型,即将广播与P2P通道相结合的方案,这样能使服务器的带宽消耗降到最低,最大节省服务器的宽带支出.当然,如果从零开始实现这种方 ...
- Nginx正向代理让无法直接上网的机器通过代理上网
Nginx正向代理让无法直接上网的机器通过代理上网 在阿里云平台买了几台ECS.但是只要其中一台开通了公网.由于要初始化系统环境,需要网络安装相关依赖. Nginx正向代理配置: 一.Nginx 正向 ...
- mysql建表设置两个默认CURRENT_TIMESTAMP的技巧
转载:http://blog.163.com/user_zhaopeng/blog/static/166022708201252323942430/ 业务场景: 例如用户表,我们需要建一个字段是创 ...
- IE8"开发人员工具"使用详解下(浏览器模式、文本模式、JavaScript调试、探查器)
来源: http://www.cnblogs.com/JustinYoung/archive/2009/04/03/kaifarenyuangongju2.html 在上一篇文章IE8“开发人员工具” ...
- Java对象的强、软、弱和虚引用原理+结合ReferenceQueue对象构造Java对象的高速缓存器
//转 http://blog.csdn.net/lyfi01/article/details/6415726 1.Java对象的强.软.弱和虚引用 在JDK 1.2以前的版本中,若一个对象不被任何变 ...
- CGridCtrl在MFC中的使用(一)
CGridCtrl控件是开源的,可在CodePlex和CodeProject上搜索找到,是VC++中用于显示表格数据的控件.基本功能包括:表格显示,单元格的编辑,单元格颜色设置,鼠标事件的响应,单元格 ...
- JavaScript(4)——闭包与this对象以及window对象
闭包与this对象以及window对象 这次写的是这三个内容.其实在写之前,会觉得这三个内容很多,但是写了之后会发现,内容确实很多,但是可以写出来的也并不是很多.可能是我总结能力太差.但是这些内容我觉 ...
- C#生成word
using Microsoft.Office.Interop.Word; using System; using System.Collections.Generic; using System.Co ...