• ANT 操控 ORACLE数据库实践


    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:javaTestAntuild.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向数据库插入数据

  • 相关阅读:
    Maven报错,没有有效的生命周期
    6张图解释IO流
    传统Java JDBC
    快速杀死占用8080端口进程的批处理(kill-8080.bat)
    ubuntu环境配置终极解答
    Linux系统下Java开发环境的配置(未完...)
    Linux常用命令及操作(第二弹)
    Linux下安装Mysql
    Linux常用命令及操作
    int转LPCTSTR
  • 原文地址:https://www.cnblogs.com/feiyun8616/p/6089081.html
Copyright © 2020-2023  润新知