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 :
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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;
Merci d'avance pour l'information.
Code : Sélectionner tout - Visualiser dans une fenêtre à part ALTER INDEX <NOM_INDEX> REBUILD;
Bahan
Partager