2016-11-04 11 views
0

我不得不從user_ind_column表採取特定索引信息和指標應該是位圖索引得到user_ind_column表中的特定指數

如何主動此方案

可以在任何一個幫助我

IEA_PATIENT_PK  _PATIENT HIEA_PATIENT_ID 1 40 40 ASC 
IEA_PATIENT_PK  _PATIENT BATCH_ID 2 22 0 ASC 
IEA_PATIENT_IDX2 _PATIENT HIEA_PATIENT_ID 1 40 40 ASC 
IEA_PATIENT_IDX2 _PATIENT PRACTICE_NAME 2 4000 4000 ASC 
IN_HIEA_PATIENT  _PATIENT HIE_ID 1 22 0 ASC 
IN_XHIEA_PATIENT _PATIENT HIE_ID 1 22 0 ASC 
IN_XHIEA_PATIENT _PATIENT PRACTICE_NAME 2 4000 4000 ASC 

這些是對_PATIENT表的索引信息,但我需要從表中刪除IN_HIEA_PATIENT記錄,並使用索引名稱

謝謝 pandia

+0

清澈如泥。你知道什麼(輸入是什麼)以及你需要什麼?你有一個表名,你需要找到該表上的所有索引是位圖索引嗎?你能否在邏輯上可理解的繼承中提出一些簡單的想法? – mathguy

+0

實際上,我必須爲hie_id列上的_PATIENT表創建一個位圖索引,如果該表包含那些索引,那麼我不需要再次創建它,所以我需要檢查是否爲該列創建了任何位圖索引 您能否獲得可能點? @mathguy –

+0

你可以簡單地創建索引。如果這個列已經被索引,你會得到一個異常 –

回答

0

這可能嗎? (概念證明 - 搜索位圖索引及其相關列;模式名稱爲'SH',表名'COSTS'; 'SH'是大多數數據庫安裝中的標準Oracle模式之一)。

select index_name, column_name 
from dba_ind_columns 
where index_name in (
         select index_name 
         from dba_indexes 
         where index_type = 'BITMAP' 
         and table_owner = 'SH' 
         and table_name = 'COSTS' 
        ) 
; 

INDEX_NAME  COLUMN_NAME 
-------------- ----------- 
COSTS_TIME_BIX TIME_ID 
COSTS_PROD_BIX PROD_ID 
+0

其實我必須爲hie_id列上的_PATIENT表創建一個位圖索引,如果該表包含那些索引,那麼我不需要再次創建它,所以我需要檢查是否有任何位圖索引爲該專欄創建或不創建 –

+0

@PANDIALAKSHMANAN - 那麼,我建議的解決方案應該可以幫助您 - 它會向您顯示錶格上的所有位圖索引,包括它們所在列的名稱。 – mathguy

+0

是的解決方案給了我一些相近的答案,但如果我有2位圖索引在同一張表上,一個索引創建_id列和其他一些其他列創建索引然後它會顯示索引名稱權。但我需要在_id專欄@mathguy上創建的索引名稱,並感謝您的回覆 –