Как просмотреть список всех индексов (включая неявные) в SQL * Plus?

Есть ли какой-нибудь способ получить список всех индексов для конкретной таблицы, используя SQL * Plus?

Я создал таблицу

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

Должен быть неявный индекс, созданный для первичный ключ ( id ). Как мне увидеть этот индекс?

SELECT * FROM all_indexes WHERE table_name = 'temp';

не дает

ни одной выбранной строки

12
задан Brian Tompsett - 汤莱恩 9 June 2017 в 12:58
поделиться

2 ответа

ВЫБРАТЬ ИМЯ ИНДЕКСА ИЗ ВСЕХ_ИНДЕКСОВ, ГДЕ 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';
25
ответ дан 2 December 2019 в 05:39
поделиться
SELECT * from USER_INDEXES
WHERE TABLE_NAME = UPPER('YourTableName')
1
ответ дан 2 December 2019 в 05:39
поделиться
Другие вопросы по тегам:

Похожие вопросы: