`
fty001
  • 浏览: 15354 次
文章分类
社区版块
存档分类
最新评论

从oracle 中导出数据字典到EXCEL

阅读更多

需要的包为oracle 驱动包,apache下的poi包
import java.io.*;
import java.sql.*;
import org.apache.poi.hssf.usermodel.*;

public class AppMain {
    public AppMain() {
    }

    public static void main(String[] args) {
        try {
            HSSFWorkbook wb = new HSSFWorkbook();
            HSSFSheet sheet =null;

           /**连接ORACLE的数据库,关键在于两个系统级的VIEW:
            all_tab_columns 记录着ORACLE所有的字段定义信息.
            DBA_COL_COMMENTS 记录着字段的注释信息,*/


            Class.forName("oracle.jdbc.driver.OracleDriver");
            Connection con = DriverManager.getConnection(
                    "jdbc:oracle:thin:@192.168.1.111:1521:ncdb", "system",   "fty001");
            Statement stmt = con.createStatement();
            StringBuffer strbuf = new StringBuffer();
            strbuf.append("SELECT A.*,B.comments");
            strbuf.append(" FROM all_tab_columns A,DBA_COL_COMMENTS B");
            strbuf.append(" WHERE A.owner=B.owner");
            strbuf.append(" AND A.table_name=B.table_name");
            strbuf.append(" AND A.COLUMN_NAME=B.COLUMN_NAME");
            //owner是建立表的用户名
            strbuf.append(" AND A.owner='SCOTT'");
            strbuf.append(" ORDER BY A.TABLE_NAME");
            ResultSet rs = stmt.executeQuery(strbuf.toString());

            String tb = "";
            int k = 0;
            while (rs.next()) {
                  //对每个表生成一个新的sheet,并以表名命名
                if (!tb.equals(rs.getString("TABLE_NAME"))) {
                    sheet = wb.createSheet(rs.getString("TABLE_NAME"));
                    //设置表头的说明
                    HSSFRow row = sheet.createRow(0);
                    setCellGBKValue(row.createCell((short) 0),"字段名");
                    setCellGBKValue(row.createCell((short) 1),"字段类型");
                    setCellGBKValue(row.createCell((short) 2),"字段长度");
                    setCellGBKValue(row.createCell((short) 3),"数字长度");
                    setCellGBKValue(row.createCell((short) 4),"小数位数");
                    setCellGBKValue(row.createCell((short) 5),"能否为NULL");
                    setCellGBKValue(row.createCell((short) 6),"字段说明");
                    k = 1;
                 } else {
                    k++;
                }
                tb = rs.getString("TABLE_NAME");
                HSSFRow row = sheet.createRow(k);
                row.createCell((short) 0).setCellValue(rs.getString(
                        "COLUMN_NAME"));
                row.createCell((short) 1).setCellValue(rs.getString("DATA_TYPE"));
                row.createCell((short) 2).setCellValue(rs.getString(
                        "DATA_LENGTH"));
                row.createCell((short) 3).setCellValue(rs.getString(
                        "DATA_PRECISION"));
                row.createCell((short) 4).setCellValue(rs.getString(
                        "DATA_SCALE"));
                row.createCell((short) 5).setCellValue(rs.getString("NULLABLE"));
                 setCellGBKValue(row.createCell((short) 6),rs.getString("COMMENTS"));

            }

             //把生成的EXCEL文件输出保存
            FileOutputStream fileOut = new FileOutputStream("E:\\数据字典.xls");
            wb.write(fileOut);
            fileOut.close();

            rs.close();
            stmt.close();
            con.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

             /**

                这个函数是为了设置一个CELL为中文字符串

              */

   private static void setCellGBKValue(HSSFCell cell, String value) {
        cell.setCellType(HSSFCell.CELL_TYPE_STRING);
         //设置CELL的编码信息
        cell.setEncoding(HSSFCell.ENCODING_UTF_16);
        cell.setCellValue(value);
    }
}

分享到:
评论

相关推荐

    oracle导出数据字典

    oracle导出excel的数据字典sql,根据该sql可以导出数据字典。

    从oracle生成表的数据字典方法

    ### 从Oracle生成表的数据字典方法 在Oracle数据库管理中,数据字典是一个非常重要的工具,它能够帮助我们理解数据库结构、表定义以及列属性等详细信息。本篇文章将介绍如何从Oracle数据库中利用COMMENT生成Excel...

    Oracle2Excel 导出字典

    Excel读取Oracle数据库中的用户信息、表信息 选择生成:用户名、表名、行数、列数、创建时间、列名、类型、主键、备注信息。 可以自定义生成样式。 测试环境:excel2013 启用vba宏,在Oracle配置的sheet中输入SID、...

    数据库转成数据字典工具类,能完美的从数据库导出数据字典。

    本资源提供的“数据库转成数据字典工具类”旨在帮助IT专业人士高效地从现有的数据库中生成详细的数据字典,以满足项目管理和汇报需求。 首先,我们需要理解什么是数据字典。数据字典是系统设计阶段的产物,它包含了...

    oracle 数据库导出excel工具

    "Oracle数据库导出Excel工具"就是为此目的设计的,它可以方便地将Oracle用户下的数据库所有表及其相关的注释转换为Excel文件,创建一个数据模型字典。 首先,这个工具的核心工作流程可能包括以下几个步骤: 1. **...

    生成数据字典,导出到Word,

    某些数据库工具如Toad、Navicat、SQL Developer等内置了数据字典生成功能,可以直接导出为Excel或Word文档。 5. 导出到Word:将数据字典导出为Word文档方便分享和编辑,Word提供了丰富的格式化和排版选项,可以创建...

    excel 生成oracle ddl语句

    excel 生成oracle ddl , 工作中一般会出现这种情况,和其他单位合作开发项目时,对方会给我们一份他们的数据字典,excl或者world的,这种情况下我们要根据数据字典将表结构建好,但是一个字段一个字段的去复制粘贴会...

    数据字典导出工具配置步骤

    由于本教程中的数据字典导出涉及到Oracle数据库的操作,因此还需要安装Oracle客户端。 - **获取安装包**:从Oracle官网下载对应的客户端版本。 - **安装Oracle客户端**:根据操作系统类型选择合适的安装包并进行...

    SQL数据字典导出程序源码

    【SQL数据字典导出程序源码】是一个用于Windows Forms(WinForm)应用程序,专门设计用来从Microsoft SQL Server 2008数据库中导出数据字典信息的工具。这个程序可能包含了一系列的C#或VB.NET源代码文件,帮助数据库...

    代码及导出数据库字典工具

    标题中的“代码及导出数据库字典工具”指的是一个用于帮助开发者或数据库管理员从数据库中导出元数据信息,即数据库结构的详细描述,包括表、字段、索引、外键等信息的软件工具。这样的工具通常以源码形式提供,用户...

    数据字典生成工具

    通过使用数据字典生成工具,用户可以快速地将这些信息导出到Excel或HTML格式,便于分享、分析和文档化。Excel是一种常见的电子表格工具,适合于处理大量数据和创建报表,而HTML则是一种网页标记语言,使得数据字典...

    sql工具,可查询、导出、生成数据字典等

    “导出”功能则意味着该工具能够将数据库中的数据转换为特定格式(如CSV、Excel或XML),以便于备份、迁移或在其他应用程序中使用。这个过程可能涉及选择特定的表或视图,以及决定是否包含所有字段或只选择一部分。 ...

    PowerDesign数据字典阅读器

    PdmReader是浏览速查pdm(*.pdm)文件的免费工具软件,无需注册,与SyBase公司的PowerDesigner产品相比的优势是:使用PdmReader进行数据字典管理,它可以以最快的速度找到您要查到的数据字典信息,大大提高日常工作效率。...

    pdmreader数据字典阅读器

    假如您所在公司在数据库开发中不使用SyBase公司的PowerDesigner产品,那么PdmReader则可以从您的数据库中逆向获取表结构信息,为您制作数据字典。 <br> PdmReader还可以作为实用的ado客户端工具进行使用...

    数据字典生成器

    5. **导出与分享**:最后,生成的数据字典可以导出为多种格式,如Excel(如提供的数据字典生成器.xls)、PDF或HTML,方便团队成员查看和协作。 使用数据字典生成器的好处在于: - **减少错误**:手动创建数据字典...

    数据字典生成工具PdmReader

    数据字典生成工具PdmReader是一款实用的软件,专门用于帮助IT专业人员快速生成数据库相关的信息文档,尤其在数据库设计和管理中起到了重要的辅助作用。它支持多种主流数据库系统,包括Access、SQL Server、MySQL以及...

    一个很不错的数据字典生成工具.

    标题中的“一个很不错的数据字典生成工具”指的是这样一种软件工具,它能够自动或半自动地从数据库中抽取信息,生成易于理解和维护的数据字典。这样的工具通常包含以下特性: 1. **自动化提取**:能够连接到多种...

    PdmReader 数据字典阅读器

    假如您所在公司在数据库开发中不使用SyBase公司的PowerDesigner产品,那么PdmReader则可以从您的数据库中逆向获取表结构信息,为您制作数据字典。 <br> PdmReader还可以作为实用的ado客户端工具进行使用...

    DBImport_V3 数据库导入导出,转文档工具

    通过这款工具,用户能够轻松地将数据从一个数据库系统迁移到另一个,或者导出数据为本地文件,以便于分析、备份或共享。这不仅简化了操作流程,也减少了手动操作可能带来的错误风险。 其次,DBImport_V3具备将...

    mssql2005,2008导出数据字典实现方法

    1. **创建查询**:首先,在SQL Server Management Studio (SSMS) 中,你需要连接到你的SQL Server实例,并选择你想要导出数据字典的数据库。然后,右键点击“查询”并选择“新建查询”。 2. **输入查询脚本**:在...

Global site tag (gtag.js) - Google Analytics