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

从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可以导出数据字典。

    Oracle2Excel 导出字典

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

    oracle 数据库导出excel工具

    执行test代码,可将oracle用户下数据库所有表及相关注释保存到excel,形成数据模型字典。

    excel 生成oracle ddl语句

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

    PowerDesign数据字典阅读器

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

    pdmreader数据字典阅读器

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

    PdmReader 数据字典阅读器

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

    Oracle SQL Handler(Oracle 开发工具) v5.1.zip

    (10)方便操作常用数据字典如表、视图、索引、过程、函数、触发器等(能查看和编辑编译PL/SQL代码); (11)中英文双语界面并能随时切换,个性化界面设置,界面简洁清爽; (12)运行语句“DESC tableName”清晰...

    C#代码生成器

    代码生成器,支持sqlservice,mysql,oracle, 有数据字典功能,可以导出excel。

    数据库设计软件BDB 2007(for Oracle/SQLServer/MySQL/Access/SQLAnywhere) V2.1

    支持从Excel导入导出的双向编辑操作。 7、对开发语言的支持。开放的数据库物理结构文件格式、并提供外部调用源程序, 包含C#、Delphi、JAVA三个版本。 8、数据库物理结构定义和实体数据库之间的比对更新、同步。 9、...

    Oracle SQL Hand-Oracle工具 v5.1.zip

    (4) 超方便实用的工作表用来显示和操作SELECT语句的查询结果,象操作Excel表格一样方便地选择行/列/单元格数据,可以将工作表的数据修改写入数据库表。另外,工作表还有单条记录操作、多功能拷贝、数值统计、查找...

    Oracle第三方工具pl\sql developer绿色中文版

    生成各种文档,如表的数据字典,导出为word文档,excel表格,txt代码文件,所有的过程,视图,触发器,同义词等. <br/> 8.查看进程,锁表情况,断开进程,死锁会话.跟踪进程的执行语句. <br/> 9.显示所有系统参数的值,...

    DATA_DICTIONARY.zip

    查询Oracle数字典,可将数据导出至excel

    数据库设计/自动安装工具BDB 2007 V2.3(For Oracle/MS SQLServer/Access/MySQL/SQLAnyWhere/Sybase)

    支持从Excel导入导出的双向编辑操作。 7、对开发语言的支持。开放的数据库物理结构文件格式、并提供外部调用源程序, 包含C#、Delphi、JAVA三个版本。 8、数据库物理结构定义和实体数据库之间的比对更新、...

    BDB 2007 V2.0 (for Oracle/SQLServer/Access/MySQL/SQLAnyWhere)

    支持从Excel导入导出的双向编辑操作。 7、对开发语言的支持。开放的数据库物理结构文件格式、并提供外部调用源程序,包含C#、Delphi、JAVA三个版本。 8、数据库物理结构定义和实体数据库之间的比对更新、同步...

    数据库设计和自动安装工具BDB V2.2(for Oracle/MS SQLServer/MySQL/Access/SQLAnywhere/Sybase)

    支持从Excel导入导出的双向编辑操作。 7、对开发语言的支持。开放的数据库物理结构文件格式、并提供外部调用源程序, 包含C#、Delphi、JAVA三个版本。 8、数据库物理结构定义和实体数据库之间的比对更新、...

    Shark DB Expert 2.7

    4. 生成表的数据字典信息,并输出为Excel 文件、Html文件 这是本软件的核心价值之二 5. 生成数据库对象的DDL,并可重建数据库对象,并可导出到SQL脚本文件 这是本软件的核心价值之三 6. 功能强大的SQL语句...

    Shark DB Expert

    4. 生成表的数据字典信息,并输出为Excel 文件、Html文件 这是本软件的核心价值之二 5. 生成数据库对象的DDL,并可重建数据库对象,并可导出到SQL脚本文件 这是本软件的核心价值之三 6. 多语言版本,目前有...

Global site tag (gtag.js) - Google Analytics