Ant
执行系统命令没有任何问题,这次实际系统命令中可以说遇到了两个问题,一个是启动服务的命令是含有空格的,第二个如何备份数据库可以自动加上日期。
  
  首先,我们启动oracle数据库,操作有两个:
  
  1.启动监听:
  
  <exec
executable="lsnrctl" >
  
  <arg line=" start
"/>
  
  </exec>
  
  2.打开数据库实例:
  
  <exec
executable='cmd' >
  
  <arg line="/c net start
oracleservice${ORA_SID}
"/>
  
  </exec>
  
  第一个操作在这里没有什么区别,就是ant调用系统命令的标准用法,我们来看一下第二个命令,
net start
oracleservice${ORA_SID},如果你直接放入到executable属性中,执行结果一定会是:
  
  BUILD FAILED:
E:\java\TestAnt\build.xml:44: Execute failed: java.io.IOException:
CreateProcess: "net start oracleservicemy_oracle"
error=2
  
  痛苦吧,带有空格的命令应该使用以下方法:
  
  <exec executable='cmd'
>
  
  <arg line="/c net start oracleservice${ORA_SID}
"/>
  
  </exec>
  
  如果在备份数据库的时候加上时间标记,我在linux下面使用教本备份oracle数据库,可以使用data
命令很方便的在备份的文件上面加上日期后缀,ant可以么?
  
  我查了很多资料,终于搞定:
  
  <tstamp>
  
  <format
property="DB_BACKUP_TIME"
pattern="yyyy-MM-dd"/>
  
  </tstamp>
  
  使用 tstamp
target可以非常方便的定义日期属性,这样再生成需要备份文件的名字,方便的解决你的问题。
  
  Ok,你可以参考完成的ant脚本:
  
  附录:参考脚本
  
  <!--
2005 by guipei. -->
  
  <project
name="TestAntOracle" default="demo" basedir="./">
  
  <!-- set
global properties for this build -->
  
  <property
name="DB_BACKUP_DIR" value="." />
  
  <property name="ORA_SID"
value="my_oracle"/>
  
  <property name="ORA_USER"
value="scott"/>
  
  <property name="ORA_PWD"
value="tiger"/>
  
  <property name="ORA_RESTORE_FILE"
value="db_back.dmp"/>
  
  <target name="demo"
>
  
  <echo> ant db_backup to backup db
</echo>
  
  <echo> ant db_restore to restore db
</echo>
  
  <echo> ant db_start to start db
</echo>
  
  <echo> ant db_stop to stop db
</echo>
  
  </target>
  
  <target
name="db_backup">
  
  <tstamp>
  
  <format
property="DB_BACKUP_TIME"
pattern="yyyy-MM-dd"/>
  
  </tstamp>
  
  <property
name="DB_BACKUP_FILE" value="MYDB_${DB_BACKUP_TIME}.DMP"
/>
  
  <echo>will backup db at
${DB_BACKUP_FILE}</echo>
  
  <exec dir="${DB_BACKUP_DIR}"
executable="exp" >
  
  <arg line="
${ORA_USER}/${ORA_PWD}@${ORA_SID}
file=MYDB_${DB_BACKUP_TIME}.DMP "/>
  
  </exec>
  
  </target>
  
  <target
name="db_restore">
  
  <exec dir="${DB_BACKUP_DIR}"
executable="imp" >
  
  <arg line="
${ORA_USER}/${ORA_PWD}@${ORA_SID} file=${ORA_RESTORE_FILE}
full=y"/>
  
  </exec>
  
  </target>
  
  <target
name="db_start">
  
  <exec executable="lsnrctl"
>
  
  <arg line=" start
"/>
  
  </exec>
  
  <exec executable='cmd'
>
  
  <arg line="/c net start
oracleservice${ORA_SID} "/>
  
  </exec>
  
  </target>
  
  <target
name="db_stop">
  
  <exec executable="lsnrctl"
>
  
  <arg line=" stop
"/>
  
  </exec>
  
  <exec executable='cmd'
>
  
  <arg line="/c net stop
oracleservice${ORA_SID} "/>
  
  </exec>
  
  </target>
  
  </project>

http://blog.csdn.net/wgw335363240/article/details/6941435

利用Ant向数据库插入数据

ANT 操控 ORACLE数据库实践的更多相关文章

  1. Oracle数据库测试和优化最佳实践: OTest介绍 (转)

    当前Oracle数据库最佳测试工具OTest *  Otest是用于Oracle数据库测试.优化.监控软件. *  Otest是免费提供给Oracle客户和广大DBA工程师使用的软件.由原厂技术专家王 ...

  2. Oracle数据库基础知识

    oracle数据库plsql developer   目录(?)[-] 一     SQL基础知识 创建删除数据库 创建删除修改表 添加修改删除列 oracle cascade用法 添加删除约束主键外 ...

  3. Java连接oracle数据库的OCI和THIN

    使用jdbc连接上oracle有两种方法: 1. 使用thin连接 由于thin驱动都是纯Java代码,并且使用TCP/IP技术通过java的Socket连接上Oracle数据库,所以thin驱动是与 ...

  4. 细说Oracle数据库与操作系统存储管理二三事

    在上大学的时候,学习操作系统感觉特别枯燥,都是些条条框框的知识点,感觉和实际应用的关联不大.发现越是工作以后,在工作中越想深入了解,发现操作系统知识越发重要.在实践中结合理论还是不错的一种学习方法.自 ...

  5. Windows server2008 搭建ASP接口访问连接oracle数据库全过程记录--备用

    真的是太不容易了,以前的时候在window server 2003上面搭建了一套asp+oracle的接口系统,就费了好大的劲儿,其实那会迷迷瞪瞪的也不知道怎么的就弄好了,也懒得管了.OK,从昨天到今 ...

  6. 浅谈Oracle数据库性能优化的目标

    Oracle性能优化保证了Oracle数据库的健壮性,为了保证Oracle数据库运行在最佳的性能状态下,在信息系统开发之前就应该考虑数据库的优化策略.从数据库性能优化的场景来区分,可以将性能优化分为如 ...

  7. [译]ASP.NET Core Web API 中使用Oracle数据库和Dapper看这篇就够了

    [译]ASP.NET Core Web API 中使用Oracle数据库和Dapper看这篇就够了 本文首发自:博客园 文章地址: https://www.cnblogs.com/yilezhu/p/ ...

  8. Java连接oracle数据库的两种常用方法

    1. 使用thin连接 由于thin驱动都是纯Java代码,并且使用TCP/IP技术通过java的Socket连接上Oracle数据库,所以thin驱动是与平台无关的,你无需安装Oracle客户端,只 ...

  9. Oracle 数据库备份和恢复配置

    可能的失败及其解决方法 失败类型 我们坑你遇到的失败或错误分为两大类:物理和逻辑.物理错误一般是硬件错误或使用数据库的应用程序中的软件错误,而逻辑错误一般在终端用户级别(数据库用户和管理员). 按从轻 ...

随机推荐

  1. 《JS中的面向对象技术》

    内容要点: 1.什么是对象:JS权威指南学习总结-第六章 ,(有句话:一切都是对象) 2.什么面向对象 使用对象时,只关注对象提供的功能,不关注其内部细节,比如jQuery.面向对象是一种通用思想,并 ...

  2. 【Sort】希尔排序

    希尔排序(ShellSort),缩小增量排序,使用希尔增量时最坏运行时间O(n^2),不同的增量会对运行时间产生显著影响. void shellsort(int *nums,int n) { int ...

  3. Redis持久存储-AOF&RDB

    Redis中数据存储模式有2种:cache-only,persistence;cache-only即只做为"缓存"服务,不持久数据,数据在服务终止后将消失,此模式下也将不存在&qu ...

  4. ASP.NET MVC 实现AJAX跨域请求的两种方法

    通常发送AJAX请求都是在本域内完成的,也就是向本域内的某个URL发送请求,完成部分页面的刷新.但有的时候需要向其它域发送AJAX请求,完成数据的加载,例如Google. 在ASP.NET MVC 框 ...

  5. StretchBlt 提高图片显示质量的方法

    通过SetStretchMode(STRETCH_HALFTONE)实现,同时注意重新设置画刷起点 LRESULT CMainDlg::OnPaint(UINT uMsg, WPARAM wParam ...

  6. linux 安装与启动nginx

    linux系统为Centos 64位 一.去http://nginx.org/download/上下载相应的版本下载nginx-1.8.0.tar.gz(注:还有更高版本的). 二.解压 tar -z ...

  7. SharePoint 入门书籍推荐 转载来源http://www.cnblogs.com/jianyus/p/3513238.html

    最近,总有人说刚入门SharePoint,没有好的资料或者电子书,资料推荐大家多看看博客园和CSDN的博客.对于看博客,我一般是两个思路,要么找一个人的从头到尾看一遍,觉得有意义的,就把地址加收藏:或 ...

  8. java实现树型结构样式

    import javax.swing.*; import javax.swing.event.*; import javax.swing.tree.*; public class Root exten ...

  9. 【CRC校验】学习笔记

    #include<stdio.h> unsigned ]= { 0x01,0x02,0x03,0x04,0x05,0x06 }; ] = { 0x0000, 0x1021, 0x2042, ...

  10. sort 排序详解

    http://www.qdfuns.com/notes/17398/c56832f62b3271e79671f77dcdd2c058.html. http://www.qdfuns.com/notes ...