如何在SQL * Plus中查看所有索引(包括隐式索引)的列表?

时间:2010-08-11 12:37:23

标签: sql indexing sqlplus

有没有办法使用SQL * Plus获取特定表上所有索引的列表?

我创建了一个表

CREATE TABLE temp(
id NUMBER PRIMARY KEY,
name VARCHAR2(20));

应该在主键(id)上创建隐式索引。我怎么能看到那个索引?

SELECT * FROM all_indexes WHERE table_name = 'temp';

给出

  

未选择任何行

4 个答案:

答案 0 :(得分:23)

SELECT INDEX_NAME FROM ALL_INDEXES WHERE TABLE_NAME = 'your_table

注意: 如果要将搜索限制为特定模式,还可以执行以下操作:

SELECT INDEX_NAME FROM ALL_INDEXES WHERE TABLE_NAME = 'your_table' AND OWNER = 'your_owner'

这在多个模式中可能具有相同表名的情况下非常有用。

另外,请记住,Oracle将表名存储为大写,因此在您的示例中,您需要执行以下操作:

select * from all_indexes where table_name = 'TEMP';

答案 1 :(得分:1)

SELECT * from USER_INDEXES
WHERE TABLE_NAME = UPPER('YourTableName')

答案 2 :(得分:0)

请以大写

编写您的表名

OR

SELECT * FROM all_indexes WHERE lower(table_name) = 'temp';

答案 3 :(得分:0)

如果要在数据库中显示所有索引,可以尝试。

use information_schema;
SELECT * FROM statistics;