`
liyanboss
  • 浏览: 140288 次
  • 性别: Icon_minigender_1
  • 来自: 厦门
社区版块
存档分类
最新评论

使用ant执行sql脚本重建oracle数据库

阅读更多
最近工作中,需要把之前的产品(基于mysql数据库的)转换到oracle环境中,利用oracle自己提供的一个工具sqldeveloper(有时间的话,把这个工具如何把mysql转换到oracle,也整理出来),里面的migration功能,可以把mysql的表结构,数据都导出成oracle的格式,对于生成的sql脚本,为了便于开发人员,持续构建,我写成了ant文件,供大家使用。
<?xml version="1.0" encoding="UTF-8"?>
<project name="mysql2oracle" basedir="." default="all">
	<property file="dev.properties" />
	<property name="jdbc.driver" value="oracle.jdbc.driver.OracleDriver" />
	<property name="jdbc.url" value="jdbc:oracle:thin:@192.168.0.8:1521:A8" />
	<property name="jdbc.system.userid" value="system" />
	<property name="jdbc.system.password" value="aljoin" />

	<target name="rebuild.schema" description="create all tables in database">
		<sql driver="${jdbc.driver}" password="${jdbc.password}" url="${jdbc.url}" userid="${jdbc.userid}" encoding="utf8" print="no">
			<transaction src="script/2.12/createTable.sql" />
			<transaction src="script/2.12/createSequence.sql" />
			<transaction src="script/2.12/createPrimaryKey.sql" />
			<transaction src="script/2.12/createForeignKey.sql" />
			<transaction src="script/2.12/createIndex.sql" />
			<transaction src="script/2.12/InitData.sql" />
			<classpath path="lib/classes12.jar" />
		</sql>
	</target>
	
	<target name="all" depends="rebuild.user,rebuild.schema"/>
	
	<!-- ================================= 
          target: rebuild.user              
         ================================= -->
	<target name="drop.user">
		<sql driver="${jdbc.driver}" password="${jdbc.system.password}" url="${jdbc.url}" userid="${jdbc.system.userid}" encoding="utf8" onerror="continue">
			<transaction>
				DROP USER ${jdbc.userid} CASCADE;
			</transaction>
			<classpath path="lib/classes12.jar" />
		</sql>
	</target>
	
	<target name="create.user">
		<sql driver="${jdbc.driver}" password="${jdbc.system.password}" url="${jdbc.url}" userid="${jdbc.system.userid}" encoding="utf8">
			<transaction>
				CREATE USER ${jdbc.userid} IDENTIFIED BY ${jdbc.password};
				GRANT CONNECT, RESOURCE, CREATE VIEW, CREATE PUBLIC SYNONYM TO ${jdbc.userid} WITH ADMIN OPTION;
				GRANT ALTER ANY ROLE, ALTER ANY SEQUENCE,
				  ALTER ANY TABLE, ALTER TABLESPACE, ALTER ANY TRIGGER,
				  COMMENT ANY TABLE, CREATE ANY SEQUENCE, CREATE ANY TABLE,
				  CREATE ANY TRIGGER, CREATE ROLE, CREATE TABLESPACE,
				  CREATE USER, DROP ANY SEQUENCE, DROP ANY TABLE,
				  DROP ANY TRIGGER, DROP TABLESPACE, DROP USER,
				  DROP ANY ROLE, GRANT ANY ROLE, INSERT ANY TABLE,
				  SELECT ANY TABLE, UPDATE ANY TABLE
				  TO ${jdbc.userid} WITH ADMIN OPTION;	
			</transaction>
			<classpath path="lib/classes12.jar" />
		</sql>
	</target>
	
	<target name="rebuild.user" depends="drop.user, create.user" description="rebuild dev user"/>
	
</project>
2
0
分享到:
评论

相关推荐

    达内java培训目录

    企业应用开发部署环境 Linux高级命令集脚本编程、远程登录、Ant、单元测试技术、Maven构建技术、SVN应用技术。 熟练掌握基于Linux系统的操作技能;可以熟练的完成应用的部署工作;可以熟练的使用开发部署工具。 ...

    JSP程序员成长手册

    原因:如果你不使用数据库的话你也许不需要掌握sql.同时你必须对以下几种数据库中的一种以上的sql比较熟悉。Oracle,DB2,Mysql,Postgresql. 6:xml 掌握程度:了解 原因:AppServer的配置一般是使用XML来实现的。...

    Ant Lob Accessor-开源

    LobAccessor是一项Ant任务,它允许您将一个或多个blob / clob值从文件系统中的文件上载/下载到Oracle中。 它解决了上载/下载lob值以补充普通sql脚本无法完成的问题。

    Spring-Reference_zh_CN(Spring中文参考手册)

    11.2.6. 执行SQL语句 11.2.7. 执行查询 11.2.8. 更新数据库 11.3. 控制数据库连接 11.3.1. DataSourceUtils类 11.3.2. SmartDataSource接口 11.3.3. AbstractDataSource类 11.3.4. SingleConnectionDataSource类 ...

    Java学习笔记-个人整理的

    {12.14}SQL脚本}{177}{section.12.14} {12.15}Transaction}{177}{section.12.15} {12.16}char与varchar2}{178}{section.12.16} {12.17}number}{179}{section.12.17} {12.18}\ttfamily user\_tables, user\_...

    Java/JavaEE 学习笔记

    八、Shell scripts:脚本编程.................28 Core Java学习笔记...........31 第一章 JAVA前言..31 第二章 标识符,关键字,类型........35 第三章 表达式与流控制....................41 第四章 数组............

    J2EE学习笔记(J2ee初学者必备手册)

    八、Shell scripts:脚本编程.................28 Core Java学习笔记...........31 第一章 JAVA前言..31 第二章 标识符,关键字,类型........35 第三章 表达式与流控制....................41 第四章 数组.............

Global site tag (gtag.js) - Google Analytics