java导出oracle数据库数据字典_oracle导出数据字典

一、概述

系统快要开发完了,甲方要求验收项目的时候提供数据字典文件,但是我们开发的时候注释直接写在实体的字段上了。我们要求提供的数据字典是word文档。要是一个一个的复制那太麻烦了,于是怎么做呢?

(1) 写个小工具类,把所有实体中的注释提取出来生成一个给表中字段添加注释的sql文件;

(2) 执行sql文件将注释添加到数据库表中;

(3) 采用datagrip或者navicat工具查询出你需要的数据字典项,然后导出为excel文件;

(4) 复制到word;

二、步骤

其他步骤略,主要讲解第三步。

1. oracle基表

首先你需要了解一下oracle数据库中的关于表数据列以及列注释的几张基表:

1.获取表:select table_name from user_tables; //当前用户拥有的表select table_name from all_tables; //所有用户的表select table_name from dba_tables; //包括系统表select table_name from dba_tables where owner='用户名'

2.获取表字段:select * from user_tab_columns where Table_Name='用户表';select * from all_tab_columns where Table_Name='用户表';select * from dba_tab_columns where Table_Name='用户表';3.获取表注释:select * fromuser_tab_comments

user_tab_comments:table_name,table_type,comments

相应的还有dba_tab_comments,all_tab_comments,这两个比user_tab_comments多了ower列。4.获取字段注释:select * fromuser_col_comments

user_col_comments:table_name,column_name,comments

相应的还有dba_col_comments,all_col_comments,这两个比user_col_comments多了ower列。

我们需要生成数据字典需要用到的信息一般有:字段名、字段类型、字段长度、是否非空、备注等。

于是乎,我们可以用获取字段的基表和获取字段注释的基表进行关联,然后查询出你想要的信息,由于我们自己能够确定自己要生成数据字典的表是位于哪个用户,所以可以使用user_tab_columns和user_col_comments组合获取,而且使用这两个表的数据量相对小一些,效率高一些。

2. 获取你需要的数据信息

--1.你可以先看下这两个表中都有哪些字段信息

select * from user_tab_columns where TABLE_NAME = 'MEM_LEVEL_TEMP_HISTORY';select * from user_col_comments where TABLE_NAME = 'MEM_LEVEL_TEMP_HISTORY';--2.核心sql: 可以更具你的需求修改

selectt.COLUMN_NAMEas"字段名",

decode(c.COMMENTS,null, ' ', c.COMMENTS) as"含义",

decode(t.DATA_TYPE,'TIMESTAMP(6)', t.DATA_TYPE, 'NUMBER', (t.DATA_TYPE || '(' || t.DATA_PRECISION || ')'),'DATE', t.DATA_TYPE, (t.DATA_TYPE || '(' || t.CHAR_LENGTH || ')')) as"长度",--t.DATA_TYPE || '(' || t.CHAR_LENGTH || ')' as "类型(长度)",--t.CHAR_LENGTH as "字段长度",

t.NULLABLE AS"是否为空",' ' as"备注"from USER_TAB_COLUMNS t join USER_COL_COMMENTS c on c.TABLE_NAME = t.TABLE_NAME and t.COLUMN_NAME =c.COLUMN_NAMEwhere c.TABLE_NAME = 'MEM_LEVEL_TEMP_HISTORY' --表名应该大写

order byt.COLUMN_ID

;

执行sql2,查询出你需要的信息。

navicat工具:选择导出结果,然后将查询结果导出为excel文件,然后从excel复制到word;

或者直接复制查询的结果,然后粘贴到excel表格,然后从excel复制到word;

datagrid工具:修改查询结果的data extractors(数据提取器)的格式为HTML(groovy),如图:

e8e4d682defa424fa38ad4f9e90b4890.png

然后复制查询结果,直接粘贴到word。

参考:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值