[Oracle 10.2][PL/SQL] Recompiler les index
Bonjour à toutes et à tous.
Je suis sous Oracle 10g et j'aimerais recompiler les différents index existants pour mon schéma <monSchema>.
Pour l'instant, j'ai écrit ceci :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
| DECLARE
CURSOR cListeIndex
IS
SELECT
sai.tablespace_name
, sai.index_name
FROM
SYS.all_indexes sai
WHERE sai.owner = '<monSchema>'
ORDER BY
sai.tablespace_name ASC
, sai.index_name ASC;
vListeIndex cListeIndex%ROWTYPE;
vRequete VARCHAR2(1000);
BEGIN
OPEN cListeIndex;
LOOP
FETCH cListeIndex INTO vListeIndex;
EXIT WHEN cListeIndex%NOTFOUND;
vRequete := 'ALTER INDEX '||vListeIndex.index_name||' REBUILD TABLESPACE '||vListeIndex.tablespace_name;
EXECUTE IMMEDIATE vRequete;
END LOOP;
CLOSE cListeIndex;
END; |
Cependant, je ne connais pas bien la syntaxe pour Oracle 10g. Ai-je écrit ma requête selon la bonne syntaxe ? Est-il nécessaire de préciser le tablespace de l'index ou peut-on juste écrire :
Code:
ALTER INDEX <NOM_INDEX> REBUILD;
Merci d'avance pour l'information.
Bahan