`
liyanboss
  • 浏览: 142281 次
  • 性别: 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
分享到:
评论

相关推荐

    Oracle数据库应用之Shopping System

    3. **数据库脚本**:`.sql`文件,包含了创建数据库表结构、初始化数据和执行其他数据库操作的SQL语句。可能有用户表、商品表、订单表、购物车表等。 4. **连接配置**:如`database.properties`,包含了连接Oracle...

    liferay的oracle部署

    然后,从Liferay官网下载数据库脚本,运行`create`目录下的SQL文件来创建表、插入初始数据和建立索引。 7. **Liferay表结构**: - Liferay Portal框架的核心表结构包括82张表,分为不同部分,如Portal相关表结构有...

    jbpm创建数据库jbpm创建数据库

    编写SQL脚本(create-db.sql) 接下来,需要创建一个名为`create-db.sql`的文件,该文件包含了创建数据库表所需的SQL语句。例如: ```sql CREATE DATABASE jbpm; USE jbpm; CREATE TABLE BPM_PROCESSINSTANCE ...

    实践项目部署文档,标准样例(使用ant 5分钟完成web项目部署)

    1. 将hpIntern Code.zip解压到任意目录下,并创建数据库,运行hpIntern\db中的internimsdb-create.sql脚本。 2. 点击hpIntern Code\hpIntern\build.bat脚本,发布项目。 3. 打开hpIntern Code\hpIntern\dist\...

    blog.rar_blog_blog oracle_hibernate 注册_oracle_博客 java

    3. **数据库脚本**:可能包含创建Oracle数据库表的SQL脚本,如用户表、帖子表、留言表等。 4. **资源文件**:如JSP页面、CSS样式表、JavaScript文件等,这些是用户界面的一部分。 5. **构建文件**:如`build.xml`...

    【转】通用从数据库导出excel、excel导入数据库组件

    这个组件可能适用于多种数据库系统,如MySQL、Oracle、SQL Server等,只要提供了对应的JDBC驱动,就能连接并操作数据。对于企业而言,这样的工具可以极大地提高数据处理的灵活性和效率,特别是在需要频繁进行数据...

    jsp代码这是jsp百例的部分例子(92例的lib)(之一)

    在JSP应用中,通常会使用JDBC(Java Database Connectivity)来建立与Oracle数据库的连接,执行SQL查询和处理结果。 【标签】"jsp代码"进一步强调了主题,这些例子将涵盖JSP语法、内置对象、指令、动作标签等核心...

    jBPM开发入门指南(2).pdf

    文档中不仅提到了这两个数据库系统的名称,还涉及到了与数据库相关的操作,比如数据库脚本文件(mysql.create.sql和oracle.create.sql),这暗示了读者在使用jBPM进行开发时,需要具备进行数据库操作的能力。...

    移动ssh项目(struts+spring+hibernate+oracle)130222.zip

    4. Service层通过Spring管理的DAO接口与Hibernate交互,执行数据库操作。 5. Hibernate将Java对象与数据库记录进行映射,完成CRUD操作。 6. Service层返回结果给Action,Action将数据封装到ActionForm,然后转发到...

    jBPM开发入门指南(2)[归类].pdf

    然后,获取jBPM的启动包,例如jbpm-starters-kit-3.1.1,进入jbpm-db目录,执行特定于MySQL的Ant命令(ant mysql.scripts),这将在指定目录下生成SQL脚本。执行这些脚本(如mysql.create.sql)将在"jbpm"库中创建所...

    ant-eclipselink-schemagen-1.0.6.jar.zip

    EclipseLink是Oracle公司贡献给开源社区的一个强大的ORM(对象关系映射)框架,它支持JPA(Java Persistence API),使得Java开发者可以以面向对象的方式来操作数据库,而无需关注底层SQL语句。EclipseLink提供了...

    JAVA开发的简易学生信息管理系统

    3. 数据库连接与操作:使用JDBC(Java Database Connectivity)连接Oracle数据库,执行SQL查询、插入、更新和删除操作。 4. 异常处理:了解如何捕获和处理程序运行时可能出现的错误。 5. 文件I/O操作:可能涉及读取...

    Java_来自SourceForge的SQuirreL SQL源代码共享见.zip

    2. **JDBC(Java Database Connectivity)**:SQuirreL SQL通过JDBC接口连接到多种数据库系统,如MySQL、Oracle、PostgreSQL等。源代码会揭示如何创建和管理JDBC连接,执行SQL查询,以及处理结果集。 3. **GUI编程*...

    Ant Lob Accessor-开源

    它通过Ant任务接口,实现了文件系统与Oracle数据库之间的数据交互,弥补了常规SQL脚本在此类操作上的不足。 Ant,作为Apache组织开发的一款Java构建工具,广泛应用于自动化构建和部署过程。LobAccessor正是基于Ant...

    Incanto:一个开源项目-开源

    然而,原生的Ant并不直接支持许多Oracle特有的操作,如数据库备份、数据迁移或执行PL/SQL脚本。这就是Incanto发挥作用的地方,它填补了这个空白,使得Ant可以更有效地处理Oracle相关的构建任务。 SQL * Plus是...

Global site tag (gtag.js) - Google Analytics