oracle查出表结构,以及导出Excel

  1. 在navica执行以下sql
select 
aa.owner			table_schema	     	-- 数据库名
,aa.table_name 								--表名
,dd.table_comments	table_comment			--表注释
,aa.filed_name 		column_name	 	        -- 列名
,dd.filed_comments	column_comment			--列名注释
,cc.is_index								--是否是索引
,cc.index_name			  				    --字段名
,ee.column_type								--字段类型
,ee.is_null									--是否为空
,bb.primary_key								--是否是主键
,aa.col#	        ordinal_position		--字段顺序
--,bb.constraint_type      				    --主键标志   'p'

from 
	(
		select 
		obj.owner,   			  -- 数据库名				
		ll.name filed_name,       -- 字段名
		ll.col#,              			--字段顺序
		obj.object_name table_name
		FROM all_objects  obj
		left join sys.col$ ll on obj.object_id =ll.obj#
		WHERE obj.owner='yourDbName'
		and ll.name is not null

	)aa
---------------------------------主键显示处理-------------------------------
left join 
	(
		select 
		a.owner,						 --库名
		a.table_name,					 --表名
		a.column_name filed_name,        --列名
		b. constraint_type,              -- 主键形式 p -主键
		'是' as primary_key
		from all_cons_columns a, all_constraints b
		where a.constraint_name = b.constraint_name
		and  a.owner = 'yourDbName'
		and   b.constraint_type= 'P'

	)bb
on aa.filed_name = bb.filed_name
and aa.table_name = bb.table_name
and aa.owner = bb.owner

-----------------------------------索引处理---------------------------------
left join 
(
	select 
	cl.COLUMN_Name  filed_name   --列名
	,ai.INDEX_Name  index_name    --索引名
	,cl.table_name				  --表名
	,cl.table_owner owner         --库名
	,'是' as is_index
	from  all_ind_columns cl
	left join all_indexes ai  
	on  cl.index_name = ai.index_name
	where cl.table_owner = 'yourDbName'
	and UNIQUENESS != 'UNIQUE'    -- 排除主键索引
)cc
on aa.filed_name= cc.filed_name
and aa.table_name = cc.table_name
and aa.owner = cc.owner

----------------------------------------注释处理------------------------
left join (
		select 
		al_tables.owner                           --库名
		,al_tables.table_name					  --表名
		,al_tables.COMMENTs table_comments		  --表注释
		,al_filed.COLUMN_name filed_name		  --字段名	
		,al_filed.comments filed_comments		  --字段注释
		FROM 
		ALL_COL_COMMENTS al_filed 
		left join ALL_TAB_COMMENTS al_tables 
		on   al_tables.owner = al_filed.owner
		and   al_tables.table_name = al_filed.table_name
		where al_filed.owner = 'yourDbName'
		  )dd
on aa.filed_name= dd.filed_name
and aa.table_name= dd.table_name
and aa.owner = dd.owner
----------------------------------类型处理---------------------------------
left join(
			select 
			 owner,
			 table_name,
			 column_name filed_name,
			 nullable, 
			 CASE WHEN nullable='Y' THEN  '是' 
						ELSE '否' END  is_null,
			 data_type, 
			CASE WHEN  data_type='DATE' THEN  a.data_type 
				 WHEN data_type='TIMESTAMP(6)' THEN  a.data_type
				 WHEN data_type='NUMBER' and DATA_precision is  null THEN data_type	
				 WHEN data_type='NUMBER'THEN data_type || '(' || DATA_precision || ',' || data_scale ||')'
			     ELSE a.data_type || '(' || a.data_length || ')' END  column_type
			from all_tab_columns a
			WHERE  owner = 'yourDbName'   --库名

		 )ee
on aa.filed_name= ee.filed_name
and aa.table_name= ee.table_name		
and aa.owner = ee.owner
ORDER BY table_schema ,table_name,ordinal_position asc  
  1. 将从navicat查询出来的数据导出excel,具体步骤见下图

    1.点击导出按钮在这里插入图片描述
    2.导出当前的结果在这里插入图片描述
    3.选择Excel数据表
    在这里插入图片描述

    4.点击下一步
    在这里插入图片描述
    5.选择包含列的标题,点击下一步

在这里插入图片描述

6.点出开始按钮
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值