Oracle导出表结构(含表名、字段名、数据类型、是否为空、字段说明)至Excel(简单详细)sql语句的形式

直接使用的是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 一般数据库客户端工具都会自带此功能)。
在这里插入图片描述

觉得不错的话,可以点个赞嘛,大家共同进步哦!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值