`
yuqihengsheng
  • 浏览: 14727 次
  • 性别: Icon_minigender_1
  • 来自: 湖南
社区版块
存档分类
最新评论

java 导出 Oracle

 
阅读更多
import java.io.FileWriter;
import java.sql.Clob;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;

public class Main {

	private static final String TYPE_MARK = "-1";
	
	private static String SQL = 
		"SELECT DBMS_METADATA.GET_DDL(U.OBJECT_TYPE, U.object_name), U.OBJECT_TYPE " +
		"FROM USER_OBJECTS U " +
		"where U.OBJECT_TYPE = 'TABLE' " +
		"or U.OBJECT_TYPE = 'VIEW' " +
		"or U.OBJECT_TYPE = 'INDEX' " +
		"or U.OBJECT_TYPE = 'PROCEDURE' " +
		"or U.OBJECT_TYPE = 'SEQUENCE' " +
		"or U.OBJECT_TYPE = 'TRIGGER' " +
		"order by U.OBJECT_TYPE desc";
	
	private static String URL = "jdbc:oracle:thin:@127.0.0.1:1521:orcl";
	private static String USERNAME = "scott";
	private static String PASSWORD = "tiger";
	private static String OUTFILE = "tables.sql";
	
	public static void main(String[] args) throws Exception {
		FileWriter fw = new FileWriter(OUTFILE);
		Class.forName("oracle.jdbc.driver.OracleDriver");
		Connection con = DriverManager.getConnection(URL, USERNAME, PASSWORD);
		Statement statement = con.createStatement();
		ResultSet rs = statement.executeQuery(SQL);
		Clob ddl;
		String type = TYPE_MARK;
		int count = 0;
		List<String> list = new ArrayList<String>();
		while(rs.next()) {
			ddl = rs.getClob(1);
			fw.write(ddl.getSubString(1L, (int)ddl.length()));
			if(!rs.getString(2).equals(type)) {
				if(!type.equals(TYPE_MARK)) {
					list.add(type + "," + count);
					type = rs.getString(2);
					count = 1;
				} else {
					type = rs.getString(2);
					count ++;
				}
			} else
				count ++;
		}
		list.add(type + "," + count);
		fw.flush();
		fw.close();
		rs.close();
		statement.close();
		con.close();
		for(String type1 : list)
			System.out.print(type1.split(",")[0] + ":" + type1.split(",")[1] + ";");
		System.out.println();
	}

}

分享到:
评论

相关推荐

    java导出oracle数据(单表)

    Java 导出 Oracle 数据(单表) 在本资源中,我们将讨论如何使用 Java 语言导出 Oracle 数据库中的单表数据。该资源提供了一个完整的示例代码,展示了如何使用 Java 语言连接 Oracle 数据库,执行导出操作,并处理...

    java导出oracle数据方法实例

    java导出oracle,仅支持单表导出,可以自己修改成多表的

    java导出oracle数据(单表).pdf

    Java 导出 Oracle 数据(单表) Java 是一种广泛使用的编程语言,Oracle 是一种常用的关系数据库管理系统。在实际应用中,经常需要将 Oracle 数据库中的数据导出到其他文件中,以便进行数据分析、备份或迁移等操作...

    Java导出Oracle数据库数据

    Java 导出 Oracle 数据库数据 Java 是一种流行的编程语言,广泛应用于各种领域。Oracle 是一种关系数据库管理系统,广泛应用于企业级应用中。在实际项目中,数据备份和恢复是非常重要的工作。本文将介绍如何使用 ...

    java导出oracle数据(单表).docx

    Java 导出 Oracle 数据(单表) 本文档主要介绍了使用 Java 语言将 Oracle 数据库中的单表数据导出到指定文件中的过程。该过程使用了 Java 语言的 Runtime.getRuntime().exec() 方法来执行 Oracle 的 exp 命令,...

    Java将oracle数据导出为txt文件

    可以把oracle中大量数据导出为txt格式,便于在线下载、存储等后续处理。已经测试过,可以执行。

    Java导出oracle表结构实例详解

    ter writer = new FileWriter(OUTFILE);...总之,Java导出Oracle表结构的过程主要包括:连接数据库、执行DDL获取SQL、遍历结果集并将DDL写入文件。这个实例提供了一个基础的实现,但可以根据实际需求进行扩展和优化。

    java实现导出oarcle表结构到excel

    在Java编程环境中,将Oracle数据库的表结构导出到Excel是一种常见的需求,特别是在数据库管理和数据分析时。这个场景可以通过两个核心类来实现:`TableStructureToExcel.java`和`ConnectionOracle.java`。这两个类...

    java导出orcale数据库dmp文件

    本文将详细讲解如何使用Java编程语言来导出Oracle数据库的DMP(Data Pump)文件,实现数据库的备份。DMP文件是一种高效的Oracle数据库导入/导出格式,它能快速地迁移大量数据。 首先,我们需要了解Java中与Oracle...

    Java导入导出Oracle[文].pdf

    本文件“Java导入导出Oracle[文].pdf”显然提供了一种利用Java程序来实现Oracle数据库的导入(exp)和导出(imp)的方法,并涉及到创建表空间、用户以及给用户授权的操作。以下是根据提供的代码片段详细解释这些知识...

    批量导出ORACLE数据库BLOB字段生成图片

    批量导出Oracle数据库中的BLOB字段生成图片,是一项常见的需求,尤其对于那些需要将数据库中的图片资源导出到本地文件系统的情况。下面将详细介绍这一过程及其相关知识点。 首先,我们需要理解BLOB类型。BLOB...

    java poi大数据量 导出excel

    java中使用poi导出Excel大批量数据 存在两个导出方法:存在一个分批量导出ZIP文件,一个导出exel文件

    java 大数据导出csv小工具

    总结来说,这个Java工具是一个高效的数据导出解决方案,尤其针对Oracle数据库,它利用并发处理来加速大数据的CSV格式化和导出。Apache POI库使得它能够方便地与CSV文件交互,而Apache Commons Collections则帮助优化...

    PowerDesigner15连接Oracle数据库并导出Oracle的表结构

    "PowerDesigner15连接Oracle数据库并导出Oracle的表结构" 本文主要介绍了使用PowerDesigner连接Oracle数据库,并生成E-R图的详细步骤。 知识点1:PowerDesigner简介 PowerDesigner是一个强大的数据建模工具,能够...

    Oracle 数据库导出导入命令及详解

    本文将详细介绍Oracle数据库的导出(EXP)和导入(IMP)命令。 **一、Oracle数据库导出命令(EXP)** 1. **USERID参数** `USERID=demo/demopwd@orcl`:这部分指定了连接到Oracle数据库的凭证。`demo`是用户名,`...

    Oracle导出Clob,Blob工具

    Oracle数据库在处理大对象(LOB)类型,如Clob(Character Large Object)和Blob(Binary Large Object)时,有时需要专门的工具来进行高效且安全的数据导出。这些字段通常存储大量的文本或二进制数据,比如长篇文档...

    批量导出ORACLE数据库BLOB字段生成文件

    本教程将详细讲解如何批量导出Oracle数据库中的BLOB字段并生成文件,适用于需要定期或一次性处理大量图片或其他BLOB数据的场景。 首先,确保你已经在本地安装了Oracle客户端。Oracle客户端提供了SQL*Plus和其他工具...

    Oracle导出INSERT语句V1.1

    在日常数据库管理和开发过程中,有时我们需要将Oracle数据库中的数据导出为INSERT语句,以便在其他环境或者备份恢复时使用。"Oracle导出INSERT语句V1.1"是一个专门为此目的设计的实用工具。 这个工具的主要功能是...

Global site tag (gtag.js) - Google Analytics