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

Moe*_*oeb 12 sql indexing sqlplus

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

我创建了一张桌子

CREATE TABLE temp(
id NUMBER PRIMARY KEY,
name VARCHAR2(20));
Run Code Online (Sandbox Code Playgroud)

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

SELECT * FROM all_indexes WHERE table_name = 'temp';
Run Code Online (Sandbox Code Playgroud)

没有选择任何行

dcp*_*dcp 25

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'
Run Code Online (Sandbox Code Playgroud)

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

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

select * from all_indexes where table_name = 'TEMP';
Run Code Online (Sandbox Code Playgroud)