zoukankan      html  css  js  c++  java
  • 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向数据库插入数据

  • 相关阅读:
    HDU 1075 What Are You Talking About(字典树)
    HDU 1075 What Are You Talking About (stl之map映射)
    HDU 1247 Hat’s Words(字典树活用)
    字典树HihoCoder
    HDU 1277全文检索(字典树)
    HDU 3294 Girls' research(manachar模板题)
    HDU 3294 Girls' research(manachar模板题)
    HDU 4763 Theme Section(KMP灵活应用)
    Ordering Tasks UVA
    Abbott's Revenge UVA
  • 原文地址:https://www.cnblogs.com/feiyun8616/p/6089081.html
Copyright © 2011-2022 走看看