2014-12-09 57 views
-1

我是新来的,所以我有可能是愚蠢的问题。 我需要检索INDEX_NAME | INDEX_CREATED | INDEXED_TABLE_NAME | INDEXED_COLUMN_NAME | COLUMN_NULLABLE使用来自数据字典的架构中的视图。它表示应该小心,因为多列索引列不会使查询结果加倍。有人可以帮我,也许写一些代码的例子吗? TNX如何从oracle数据字典中检索数据?

+1

'它说...'>什么说? – 2014-12-09 12:09:47

+0

我的意思是,我需要照顾多列索引列不加倍,但现在并不重要...... – 2014-12-09 12:19:34

回答

0

试试这个:

select ic.table_name, ic.index_name,oc.last_ddl_time, ic.column_name, tc.DATA_TYPE, tc.DATA_LENGTH, tc.DATA_PRECISION,tc.DATA_SCALE, tc.NULLABLE 
from user_ind_columns ic, user_tab_columns tc , user_objects oc 
where 1=1 
    and ic.table_name = tc.TABLE_NAME 
    and ic.column_name = tc.COLUMN_NAME 
    and oc.object_name = ic.index_name 
    and oc.object_type = 'INDEX' 
order by ic.table_name, ic.index_name, ic.column_position; 

嗨, IC,TC,OC是index_columns,table_columns和USER_OBJECTS别名。 如果您需要YES/NO,然后用解码:

select ic.table_name, ic.index_name,uo.last_ddl_time, ic.column_name, tc.DATA_TYPE, tc.DATA_LENGTH, tc.DATA_PRECISION,tc.DATA_SCALE, decode(tc.NULLABLE, 'Y', 'YES', 'N', 'NO') 
from user_ind_columns ic, user_tab_columns tc , user_objects uo 
where 1=1 
    and ic.table_name = tc.TABLE_NAME 
    and ic.column_name = tc.COLUMN_NAME 
    and uo.object_name = ic.index_name 
    and uo.object_type = 'INDEX' 
order by ic.table_name, ic.index_name, ic.column_position; 

问候rimetnac

+0

这是什么意思集成电路。 ,tc。 ,oc。????? ALL_TAB_COLUMNS.NULLABLE包含数据Y/​​N,我需要打印如YES/NO? – 2014-12-09 12:34:23