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. C#实现文件的压缩和解压

    这里主要解决文件夹包含文件夹的解压缩问题.1)下载SharpZipLib.dll,在http://www.icsharpcode.net/OpenSource/SharpZipLib/Download ...

  2. CSS3 学习小结

    写样式时有时遇到浏览器兼容问题:-webkit-transition:chrome和safari-moz-transition:firefox-ms-transition:IE-o-transitio ...

  3. CSS 背景 background 讲解

    背景语法:background: background-color || background-image || background-repeat || background-attachment ...

  4. wuzhi 五指 伪静态

    rewrite ^(.*)list\/([0-9]+)-([0-9]+)\.html$ $1index.php?v=listing&cid=$2&page=$3 last; rewri ...

  5. Openjudge-计算概论(A)-单词倒排

    描述: 编写程序,读入一行英文(只包含字母和空格,单词间以单个空格分隔),将所有单词的顺序倒排并输出,依然以单个空格分隔. 输入输入为一个字符串(字符串长度至多为100).输出输出为按要求排续后的字符 ...

  6. FireFox站点标识按钮

    Firefox 的站点标识按钮可以为您提供有关您访问的网站的详细信息.通过站点标识按钮,您可以了解到站点的加密信息.验证信息.网站所有者和网站验证者.这有助于避免恶意网站获得您的重要信息. 站点标识按 ...

  7. 711B - Chris and Magic Square 模拟

    题目大意:在num[i][j]==0处填一个数使每行,每列,对角线的和相同,若果有多种答案输出一种. 题目思路:模拟 #include<iostream> #include<algo ...

  8. 终端中出现While executing gem ... (Errno::EPERM) Operation not permitted - /usr/bin/pod错误的修改方法

    把输入终端的sudo gem install cocoapods改为 sudo gem install -n /usr/local/bin/ cocoapods即可

  9. cocoaPods的安装方法

    1.打开终端 2.先升级Gem sudo gem update --system 3.切换cocoapods的数据源 [先删除,再添加,查看] gem sources --remove https:/ ...

  10. unity Mesh(网格)的使用

    创建两个三角形合成的矩形网格: GameObject obj= new GameObject(); MeshRenderer meshRenderer=obj.AddComponent<Mesh ...