oracle 导出数据字典

一、查看当前用户下表名,及表名的备注

select * from user_tab_comments where table_name like ‘T_ONLINE%‘

二、查询数据字典

1. 具有dba权限用户导出数据字典

SELECT  A.TABLE_NAME AS "表名",A.COLUMN_NAME AS "字段名",
 DECODE(A.CHAR_LENGTH,0,DECODE(A.DATA_SCALE,NULL,A.DATA_TYPE,A.DATA_TYPE||‘(‘||A.DATA_PRECISION||‘,‘||A.DATA_SCALE||‘)‘),
 A.DATA_TYPE||‘(‘||A.CHAR_LENGTH||‘)‘) as "字段类型",A.DATA_DEFAULT AS "默认值",
A.NULLABLE AS "能否为空",B.comments AS "备注"
FROM sys.all_tab_columns A,sys.DBA_COL_COMMENTS B
WHERE A.owner=B.owner AND A.table_name=B.table_name  AND A.COLUMN_NAME=B.COLUMN_NAME AND A.owner=‘guoqiang‘  AND
A.TABLE_NAME IN (
‘TB_SUBJECT‘, ‘TB_SUBJECT_BALANCE‘, ‘TB_VOUCHER‘, ‘TB_VOUCHER_DETAILS‘, 
‘TB_CUSTOMER‘, ‘TB_VOUCHER_CLASSIFY_MODE‘, ‘TB_VOUCHER_TYPE‘, ‘TB_ASSET‘, 
‘TB_ASSET_CATALOG‘, ‘TB_M_DM_ASSETS_LIABI_RPT‘, ‘TB_M_DM_PROFIT_RPT‘, 
‘TB_M_DM_REVENUE_RPT‘, ‘TB_M_DM_COST_RPT‘
)
ORDER BY A.TABLE_NAME

2.一般用户导出该用户下的数据字典

SELECT  A.TABLE_NAME AS "表名",A.COLUMN_NAME AS "字段名",
 DECODE(A.CHAR_LENGTH,0,DECODE(A.DATA_SCALE,NULL,A.DATA_TYPE,A.DATA_TYPE||‘(‘||A.DATA_PRECISION||‘,‘||A.DATA_SCALE||‘)‘),
 A.DATA_TYPE||‘(‘||A.CHAR_LENGTH||‘)‘) as "字段类型",A.DATA_DEFAULT AS "默认值",
A.NULLABLE AS "能否为空",B.comments AS "备注"
FROM sys.user_tab_columns A,sys.user_col_comments B
WHERE A.table_name=B.table_name  AND A.COLUMN_NAME=B.COLUMN_NAME AND
A.TABLE_NAME IN (
‘TB_SUBJECT‘, ‘TB_SUBJECT_BALANCE‘, ‘TB_VOUCHER‘, ‘TB_VOUCHER_DETAILS‘, 
‘TB_CUSTOMER‘, ‘TB_VOUCHER_CLASSIFY_MODE‘, ‘TB_VOUCHER_TYPE‘, ‘TB_ASSET‘, 
‘TB_ASSET_CATALOG‘, ‘TB_M_DM_ASSETS_LIABI_RPT‘, ‘TB_M_DM_PROFIT_RPT‘, 
‘TB_M_DM_REVENUE_RPT‘, ‘TB_M_DM_COST_RPT‘
)
ORDER BY A.TABLE_NAME

原文地址:https://www.cnblogs.com/52KT9/p/11725033.html

时间: 2024-10-09 14:45:20

oracle 导出数据字典的相关文章

oracle导出多CSV文件的靠谱的

oracle导出多CSV文件的问题 ---------------------------------------------------------------------- 用ksh脚本从oracle数据库中导出80w数据到csv文件,如用户给定名字为a.csv(文件最大4000行记录),则自动生产文件为a_1.csv,a_2.csv,...., a_200.csv 我已经实现了一个方法,但80w要导5小时,用户没法接受.如下: sqlplus -s user/pwd @${SqlDir}/

关于Oracle导出数据的几个错误EXP-00008,ORA-00904,ORA-01003,EXP-00091

首先说明数据库的版本 服务器:10.2.0.5.0 客户端:11.2.0.1.0 导出会报错 EXP-00008: 遇到 ORACLE 错误 1003 ORA-01003: no statement parsed 和 EXP-00008: 遇到 ORACLE 错误 904 ORA-00904: "MAXSIZE": invalid identifier 这小样问题,怎么也不会想到是客户端不能向下兼容吧,困了我很久.我决定试下是不是客户端不兼容问题,果然是这样的. 装了个虚拟机,客户端版

MySQL利用Navicat导出数据字典

这里算是一个小技巧 利用mysql的information_schema中的COLUMNS表 和navicat中的导出功能实现快速导出数据字典 CREATE TEMPORARYTABLE `COLUMNS` (   `TABLE_CATALOG` varchar(512) NOT NULL DEFAULT'',   `TABLE_SCHEMA` varchar(64) NOT NULL DEFAULT'',   `TABLE_NAME` varchar(64) NOT NULL DEFAULT 

Oracle导出excel

oracle导出excel(非csv)的方法有两种,1.使用sqlplus  spool,2.使用包体 现将网上相关代码整理后贴出以备不时之需: 使用sqlplus: 使用sqlplus需要两个文件:sql脚本文件和格式设置文件. 去除冗余信息,main.sql --main.sql 注意,需要在sqlplus下运行 非plsql命令行下 set linesize 200 set term off verify off feedback off pagesize 999 set markup h

SQL 导出数据字典

用于参考: SELECT       表名=case   when   a.colorder=1   then   d.name   else   ''   end,     表说明=case   when   a.colorder=1   then   isnull(f.value,'')   else   ''   end,     字段序号=a.colorder,     字段名=a.name,       主键=case   when   exists(SELECT   1   FROM

Oracle 导出导入数据

最近用到Oracle导出导入数据,在网上看了别人的一些文章,总结如下: Oracle导出导出有两中方式:一.利用exp imp导出导入:二.利用Oracel数据泵expdp impdp导出导入. 一.利用exp imp导出导入 exp imp 语法如下: exp: 1) 将数据库orcl完全导出 exp system/[email protected] file=d:\orcl_bak.dmp full=y 2) 将数据库中system用户的表导出 exp system/[email prote

oracle常用数据字典

----常用数据字典 USER_ 记录用户对象的信息,如user_tables包含用户创建的所有表:                                 user_views,user_constraints等; ALL_ 记录用户对象的信息及被授权访问的对象信息: DBA_ 记录数据库实例的所有对象的信息,如DBA_USERS包含数据库实例中 所有用户的信息,DBA的信息包含user和all的信息: V$ 当前实例的动态视图,包含系统管理和优化使用的视图: GV_ 分布环境下所有实

Oracle 导出空表的新方法(彻底解决)

背景 使用Exp命令在oracle 11g 以后不导出空表(rowcount=0),是最近在工作中遇到一个很坑的问题,甚至已经被坑了不止一次,所以这次痛定思痛,准备把这个问题彻底解决.之所以叫新方法,那一定有老方法了,这个方法是一位博友很早就提出了,以下是原文,其实也说明了问题的原因 Oracle11g使用exp导出空表(作者:程序员的那些) 问题根本原因:“Oracle11g默认对空表不分配segment,故使用exp导出Oracle11g数据库时,空表不会导出” 问题次要原因: 在开发维护期

Toad导出数据字典,把数据库所有的表结构导出到htm中

Toad导出数据字典,把 数据库所有的表结构导出到htm中 第一步: 第二步:选择数据库 第三步:选择路径和设置其它配置 第四步:生成成功后, 系统会弹出提示框询问是否打开. 最终生成的表框架效果如下图所示: 在写软件文档时常常需要数据字典,用这个方法能够快速提取表结构.