Il arrive, après des manipulations plus ou moins discutable (truncate un peu violent dans un table) que les indexes deviennent invalident.
L’erreur remonté par Oracle: ORA-01502
Pour connaitre la liste des Indexes invalide :
select TABLE_OWNER, TABLE_NAME,
INDEX_NAME, STATUS
from user_indexes
where status = ‘UNUSABLE’;
A partir de cette liste, un recalcule de ses indexes :
begin
for r_list in (
select TABLE_OWNER, TABLE_NAME, INDEX_NAME, STATUS
from user_indexes
where status = ‘UNUSABLE’)
loop
EXECUTE IMMEDIATE ‘ALTER INDEX ‘ || r_list.index_name || ‘ REBUILD’;
end loop;
end;
/
Oracle: ORA-01502 Index UNUSABLE
Il arrive, après des manipulations plus ou moins discutable (truncate un peu violent dans un table) que les indexes deviennent invalident.
L’erreur remonté par Oracle: ORA-01502
Pour connaitre la liste des Indexes invalide :
select TABLE_OWNER, TABLE_NAME,
INDEX_NAME, STATUS
from user_indexes
where status = ‘UNUSABLE’;
A partir de cette liste, un recalcule de ses indexes :
begin
for r_list in (
select TABLE_OWNER, TABLE_NAME, INDEX_NAME, STATUS
from user_indexes
where status = ‘UNUSABLE’)
loop
EXECUTE IMMEDIATE ‘ALTER INDEX ‘ || r_list.index_name || ‘ REBUILD’;
end loop;
end;
/