查詢oracle的表列信息以及註釋信息

1、查詢表和列的註釋信息

select t3.table_name,
       t3.comments,
       t1.COLUMN_NAME,
       t2.comments,
       t1.DATA_TYPE || '(' || decode(t1.DATA_TYPE,
                                     '',
                                     t1.DATA_PRECISION + t1.DATA_SCALE,
                                     t1.data_length) || ')'
  from user_tab_cols t1, user_col_comments t2, user_tab_comments t3
 where t1.TABLE_NAME = t2.table_name(+)
   and t1.COLUMN_NAME = t2.column_name(+)
   and t1.TABLE_NAME = t3.table_name(+)
   and lower(t1.TABLE_NAME) = 'user';

執行該語句使用當前用戶執行;

在PL/SQLdeveloper中查詢出來之後,全選右鍵選擇導出到excel即可。

2、查詢創建表的語句

set pagesize 0

set long 90000

set echo off

spool getdll.sql

select dbms_metadata.get_ddl('TABLE','TAB_NAME','SCOTT') from dual;

第一個參數:object_type,第二個參數:object_name,第三個參數:schema

select dbms_metadata.get_ddl('TABLE','TAB_NAME','SCOTT') from dual;

select dbms_metadata.get_ddl('VIEW','VIEW_NAME','SCOTT') from dual;

select dbms_metadata.get_ddl('INDEX','IDX_NAME','SCOTT') from dual;

spool off;

若是某個schema下的對象則:

set pagesize 0

set long 90000

set echo off

spool getdll.sql

connect scott/tiger;

SELECT DBMS_METADATA.GET_DDL('TABLE',u.table_name) FROM USER_TABLES u;

SELECT DBMS_METADATA.GET_DDL('VIEW',u.VIEW_name) FROM USER_VIEWS u;

SELECT DBMS_METADATA.GET_DDL('INDEX',u.index_name) FROM USER_INDEXES u;

spool off;

 獲取某個SCHEMA的建全部對象(包括存儲過程、包、函數、)的語法

select DBMS_METADATA.GET_DDL('PROCEDURE',u.object_name) from  user_objects u where  object_type = 'PROCEDURE';

select DBMS_METADATA.GET_DDL('SEQUENCE',u.object_name) from  user_objects u where  object_type = 'SEQUENCE';

select DBMS_METADATA.GET_DDL('TRIGGER',u.object_name) from  user_objects u where  object_type = 'TRIGGER';

select DBMS_METADATA.GET_DDL('PACKAGE',u.object_name) from  user_objects u where  object_type = 'PACKAGE';

select DBMS_METADATA.GET_DDL('FUNCTION',u.object_name) from user_objects u where object_type = 'FUNCTION';

 

dbms_metadata.get_dll的用法

--GET_DDL: Return the metadata for a single object as DDL.

-- This interface is meant for casual browsing (e.g., from SQLPlus)

-- vs. the programmatic OPEN / FETCH / CLOSE interfaces above.

-- PARAMETERS:

-- object_type - The type of object to be retrieved.

-- name - Name of the object.

-- schema - Schema containing the object. Defaults to

-- the caller's schema.

-- version - The version of the objects' metadata.

-- model - The object model for the metadata.

-- transform. - XSL-T transform. to be applied.

-- RETURNS: Metadata for the object transformed to DDL as a CLOB.

FUNCTION get_ddl ( object_type IN VARCHAR2,

name IN VARCHAR2,

schema IN VARCHAR2 DEFAULT NULL,

version IN VARCHAR2 DEFAULT 'COMPATIBLE',

model IN VARCHAR2 DEFAULT 'ORACLE',

transform. IN VARCHAR2 DEFAULT 'DDL') RETURN CLOB;

 3、導出

expdp system/oracle directory=exp_dir dumpfile=getdll.dmp content=metadata_only schemas=etarde log=logfile.log

4、查詢一個用戶的所有表的結構信息的SQL語句  

select a.table_name as 表名,user_tab_comments.comments as 表名備註,a.column_name as 列名,
  a.data_type as 類型,
  decode(a.data_type, 'NUMBER', a.data_precision, a.data_length) as 長度,
a.data_scale as 小數位數,
  f.comments as 註釋,
  a.nullable as 是否允許空,
  a.data_default as 缺省值,
  decode(e.key, 'Y', 'Y', 'N') as 外鍵
  from user_tab_columns a,user_col_comments f,user_tab_comments, 
  (select b.table_name,
  b.index_name,
  b.uniqueness,
  c.column_name,
  decode(d.constraint_name, 'R', 'Y', 'N') key
  from user_indexes b,
  user_ind_columns c,
  (select constraint_name
  from user_constraints
  where constraint_type = 'P') d
  where b.index_name = c.index_name
  and b.index_name = d.constraint_name(+)) e
 where a.table_name = e.table_name(+)
  and a.column_name = e.column_name(+)
  and a.table_name = f.table_name
  and a.column_name = f.column_name
  and a.table_name = user_tab_comments.table_name
  --and a.table_name = 'T_EDR_CON'
--and a.table_name not in('PLAN_TABLE','T_COMMAND_PARAM')
 order by a.table_name

發佈了70 篇原創文章 · 獲贊 5 · 訪問量 9萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章