Oracle有一個查詢來選擇表的現有索引。 例如:選擇表索引的列
SELECT * FROM user_indexes WHERE table_name = 'CM_WCEL';
但我需要重新創建索引創建語句。 如何獲取受影響的列等其他信息?
Oracle有一個查詢來選擇表的現有索引。 例如:選擇表索引的列
SELECT * FROM user_indexes WHERE table_name = 'CM_WCEL';
但我需要重新創建索引創建語句。 如何獲取受影響的列等其他信息?
要獲得完整的DDL每個索引,使用dbms_metadata.get_ddl()
:
select index_name, dbms_metadata.get_ddl('INDEX', index_name) as ddl
from user_indexes
where table_name = CM_WCEL';
的DDL返回爲CLOB。根據您使用的SQL客戶端,您可能需要進行一些配置更改才能看到完整的代碼。例如在SQL * Plus中,在運行select語句之前,您需要一些東西set long 60000
。
這應該提供必要的信息:
select index_name, column_name
from user_ind_columns
where table_name = 'CM_WCEL';
按照創建表,在以下表格將有請求的信息。
SELECT *
FROM user_ind_columns
WHERE table_name = 'CM_WCEL';
或
SELECT *
FROM dba_ind_columns
WHERE table_name = 'CM_WCEL';
要重新創建'創建index'聲明,最好使用' –
你在'dba_ind_columns'檢查'DBMS_METADATA.GET_DDL()或'user_ind_columns' –
@a_horse_with_no_name該方法返回的所有DDL吧?我需要解析它並找到索引信息? –