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 客户端的更多相关文章

  1. 【原创分享·支付宝支付】HBuilder打包APP调用支付宝客户端支付

    前言 最近有点空余时间,所以,就研究了一下APP支付.前面很早就搞完APP的微信支付了,但是由于时间上和应用上的情况,支付宝一直没空去研究.然后等我空了的时候,发现支付宝居然升级了支付逻辑,虽然目前还 ...

  2. Shell_Shell调用SQLPlus简介(案例)

    2014-06-20  Created By BaoXinjian

  3. Unix/Linux中shell调用sqlplus的方式

    Unix/Linux下,shell脚本调用sqlplus的几种方式介绍: 一.最简单的shell调用sqlplus #!/bin/bash sqlplus -S /nolog > sqlplus ...

  4. 性能测试培训:批量执行Jmeter脚本之ant调用

    性能测试培训:批量执行Jmeter脚本之ant调用   poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标.在poptest的load ...

  5. SpringCloud使用Feign调用其他客户端带参数的接口,传入参数为null或报错status 405 reading IndexService#del(Integer);

    SpringCloud使用Feign调用其他客户端带参数的接口,传入参数为null或报错status 405 reading IndexService#del(Integer); 第一种方法: 如果你 ...

  6. [20170617]vim中调用sqlplus.txt

    [20170617]vim中调用sqlplus.txt --//以前写过一篇emacs下调用sqlplus的文章,一直想学emacs,受限制自己掌握vim,对学习它没有兴趣,原链接如下:--//htt ...

  7. Android应用内使用新浪微博SDK发送微博(不调用微博客户端)

    需求 手头的一个应用需要添加分享到新浪微博的功能,这个功能在现在的应用上是非常的普遍的了. 分享到新浪微博,其实就是发送一条特定内容的微博,所以需要用到新浪微博SDK了. 微博SDK SDK的下载地址 ...

  8. sqlplus客户端 navicat 使用sqlplus OCI

    链接:http://pan.baidu.com/s/1i5otsUT 密码:cbux 解压后放到某个目录下 这是我的 sqlplus客户端出现乱码 - 一支小白 - 博客园  http://www.c ...

  9. shell 调用 sqlplus

    一.最简单的shell里调用sqlplus. $ vi test1.sh #!/bin/bashsqlplus -S /nolog > result.log <<EOFset hea ...

随机推荐

  1. IIS的集成和经典模式的区别

    集成和经典的区别: 1.集成模式集成通用映射,而经典模式必须添加DLL才可以使用通用映射,存在通用映射才可以拦截 2.集成模式是IIS7.0以上,经典模式是IIS6.0以下

  2. jQuery复习:第二章&第三章

    第二章 一.选择器 1.层次选择器 $(“ancestor descendant”)选取ancestor元素里的所有后代元素 $(“parent > child”)选取parent元素下的chi ...

  3. 【LeetCode】459. Repeated Substring Pattern

    Given a non-empty string check if it can be constructed by taking a substring of it and appending mu ...

  4. ocean所用的蝴蝶纹理

    #include <ork/render/FrameBuffer.h> #include <ork/scenegraph/SceneManager.h> #include &l ...

  5. 抛弃阿里云,中国用户购买海外VPS的五个理由

    王掌柜在过去的五年多时间里,折腾过不少vps品牌,最开始玩的是一年一百多块钱的香港虚拟主机,后来业务量大了,开始折腾国内的小鸟云.阿里云.腾讯云.电信云.百度云主机,国外的linode\interse ...

  6. incallui中如何查询联系人数据

    联系人信息显示在CallCard中,提示当前正在通话的联系人号码.姓名.头像.号码类型等信息: 代码中在两个地方发起对当前联系人的查询, Init():startContactInfoSearch(c ...

  7. 全排列dfs算法

    如下 #include <iostream> using namespace std; #define MAX 10 #define _CRT_SECURE_NO_WARNINGS int ...

  8. 安装免安装版的mysq服务的方法l

    1.将安装包解压到没有中文的目录文件夹下,例如:D:\workspace\mysql-5.6.25-win32. 2.打开cmd窗口,进入到安装目录下, C:\Windows\system32> ...

  9. socket通信实例

    ref: http://www.cnblogs.com/xudong-bupt/archive/2013/12/29/3483059.html http://blog.csdn.net/love_ga ...

  10. 观后感-MySQL索引类型 btree索引和hash索引的区别

    http://www.cnblogs.com/osfipin/p/4943229.html.http://www.2cto.com/database/201411/351106.html-文章地址 首 ...