直接使用的是sql语句,然后将结果通过数据库客户端直接导出成excel表,这种适合需要导出的表数量较少的情况。
如果需要导出的表数量较多的话,建议使用powerdesign。
下面给出sql语句查询并导出excel的方式。
oracle表结构涉及到几个关键的系统表:
● cols –系统表
● user_col_comments –表名、列名、说明
● user_tab_comments –表名、类型、说明
● user_objects – 字典表视图
真正导出的SQL语句整理如下:
(把下面‘你要查询的表名’换成自己要查的表名 然后直接运行该sql语句即可)
SELECT t1.Table_Name || chr(13) || t3.comments AS "表名称及说明",
--t3.comments AS "表说明",
t1.Column_Name AS "字段名称",
t1.DATA_TYPE || '(' || t1.DATA_LENGTH || ')' AS "数据类型",
t1.NullAble AS "是否为空",
t2.Comments AS "字段说明",
t1.Data_Default "默认值"
-- t4.created AS "建表时间"
FROM cols t1
LEFT JOIN user_col_comments t2
ON t1.Table_name = t2.Table_name
AND t1.Column_Name = t2.Column_Name
LEFT JOIN user_tab_comments t3
ON t1.Table_name = t3.Table_name
LEFT JOIN user_objects t4
ON t1.table_name = t4.OBJECT_NAME
WHERE NOT EXISTS (SELECT t4.Object_Name
FROM User_objects t4
WHERE t4.Object_Type = 'TABLE'
AND t4.Temporary = 'Y'
AND t4.Object_Name = t1.Table_Name
)
and t1.TABLE_NAME='你要查询的表名' --这里注意哦换成自己要查的那个表的表名,如果去掉这句话会查出该数据库所有的表结构
ORDER BY t1.Table_Name, t1.Column_ID;
--以上所查的列如果不符合自己的要求 可以通过自己更改sql语句来获得想要查询的列,想要的属性上面几张系统表里都有,自己写也很简单
● 示例结果如下所示
最后直接将结果导出成excel文件即可(笔者使用的是PL/SQL 一般数据库客户端工具都会自带此功能)。
觉得不错的话,可以点个赞嘛,大家共同进步哦!