Есть ли какой-нибудь способ получить список всех индексов для конкретной таблицы, используя SQL * Plus?
Я создал таблицу
CREATE TABLE temp(
id NUMBER PRIMARY KEY,
name VARCHAR2(20));
Должен быть неявный индекс, созданный для первичный ключ ( id
). Как мне увидеть этот индекс?
SELECT * FROM all_indexes WHERE table_name = 'temp';
не дает
ни одной выбранной строки
ВЫБРАТЬ ИМЯ ИНДЕКСА ИЗ ВСЕХ_ИНДЕКСОВ, ГДЕ 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';
SELECT * from USER_INDEXES
WHERE TABLE_NAME = UPPER('YourTableName')