最近工作中,需要把之前的产品(基于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>
分享到:
相关推荐
企业应用开发部署环境 Linux高级命令集脚本编程、远程登录、Ant、单元测试技术、Maven构建技术、SVN应用技术。 熟练掌握基于Linux系统的操作技能;可以熟练的完成应用的部署工作;可以熟练的使用开发部署工具。 ...
原因:如果你不使用数据库的话你也许不需要掌握sql.同时你必须对以下几种数据库中的一种以上的sql比较熟悉。Oracle,DB2,Mysql,Postgresql. 6:xml 掌握程度:了解 原因:AppServer的配置一般是使用XML来实现的。...
LobAccessor是一项Ant任务,它允许您将一个或多个blob / clob值从文件系统中的文件上载/下载到Oracle中。 它解决了上载/下载lob值以补充普通sql脚本无法完成的问题。
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类 ...
{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\_...
八、Shell scripts:脚本编程.................28 Core Java学习笔记...........31 第一章 JAVA前言..31 第二章 标识符,关键字,类型........35 第三章 表达式与流控制....................41 第四章 数组............
八、Shell scripts:脚本编程.................28 Core Java学习笔记...........31 第一章 JAVA前言..31 第二章 标识符,关键字,类型........35 第三章 表达式与流控制....................41 第四章 数组.............