-- 20141105 XXX
--========================================================================
-- 1.ALL_OBJECT
--========================================================================
select object_type, object_name, subobject_name, status
from user_objects
order by 1, 2, 3;
--========================================================================
-- 2.SCHEMA_TABLE
--========================================================================
select c.table_name
, tm.comments TAB_COMMENTS
, (select max(object_type) from user_objects obj where obj.object_name = t.table_name) as TABLE_TYPE
, c.column_id, c.column_name, cm.comments COL_COMMENTS, c.data_type
,
case c.data_type when 'VARCHAR2' then to_char(data_length )
when 'CHAR' then to_char(data_length )
when 'NUMBER' then to_char(data_precision)
when 'BLOB' then 'BLOB'
end as DATA_LENGTH
,
case c.data_type when 'VARCHAR2' then ''
when 'CHAR' then ''
when 'NUMBER' then to_char(data_scale)
when 'BLOB' then ''
end as DATA_SCALE
, NULLABLE
, DATA_DEFAULT
from tabs t, user_tab_cols c, user_tab_comments tm, user_col_comments cm
where t.table_name = c.table_name
and t.table_name = tm.table_name(+)
and c.table_name = cm.table_name(+)
and c.column_name = cm.column_name(+)
order by c.table_name, c.column_id;
--========================================================================
-- 3.SCHEMA_INDEX
--========================================================================
select i.table_name
, i.index_name
, (select max(object_type) from user_objects obj where obj.object_name = i.index_name) as INDEX_TYPE
, ic.column_name, ic.column_position, ic.column_length, ic.char_length
from user_indexes i, user_ind_columns ic
where i.index_name = ic.index_name
order by i.table_name, i.index_name, ic.column_position;
--========================================================================
-- 4.SIZE_TABLE
--========================================================================
select t.table_name, s.segment_name, s.partition_name,
s.segment_type, s.tablespace_name,
t.num_rows row_count, bytes
from user_segments s, user_tables t
where s.segment_name = t.table_name
and s.segment_type like 'TABLE%'
order by s.segment_name, s.partition_name;
--========================================================================
-- 5.SIZE_INDEX
--========================================================================
select i.table_name, i.index_name, s.segment_name, s.partition_name,
s.segment_type, s.tablespace_name, i.num_rows row_count, bytes
from user_segments s, user_indexes i
where s.segment_name = i.index_name
and s.segment_type like 'INDEX%'
order by s.segment_name, s.partition_name;
--========================================================================
-- 6.CODE_COUNT
--========================================================================
-- 이건 코드테이블이 많아서, 고치기 귀찮아서 생략했다.....
이거 그대로 돌려봐~~ 내가 진짜로 일할 때 쓴 거다. 5개 증권사에 메타 조사하려고 만든 거거든.. UI 쪽에 병신들이 많아서 5개 증권사마다 뭔가 다 틀려~.. 그래서 조사하려고 만든 거고. 이거 결과 엑셀로 보내달라고 했다.
오라클이야