Hallo zusammen!
Wie kann ich mit nur einer SQL-Anweisung den Index für mehrere Tabellen neu setzen (rebuild)?
Danke im Voraus!
Matt
Hallo zusammen!
Wie kann ich mit nur einer SQL-Anweisung den Index für mehrere Tabellen neu setzen (rebuild)?
Danke im Voraus!
Matt
hi!
da du keine datenbank nennst, gehe ich mal von oracle aus:
in einem aufwaschen geht das natürlich nicht, ABER mit einem kleinen spool-file ist es kein problem:
spool rebuild_index.sql
select ‚alter index ‚||index_name||‘ rebuild noreverse;‘
from user_indexes;
spool off
@rebuild_index.sql;
grüße,
tomh
Hi,
da du keine datenbank nennst, gehe ich mal von oracle aus:
Und ich von 8i aufwärts:
in einem aufwaschen geht das natürlich nicht, ABER mit einem
kleinen spool-file ist es kein problem:
Auch ohne Spool-file klappt das so:
begin
for i in ( select index\_name from user\_indexes) loop
EXECUTE IMMEDIATE ('alter index ' ||
i.index\_name ||
' rebuild noreverse');
end loop;
end;
Gruß
J.
hi!
da du keine datenbank nennst, gehe ich mal von oracle aus:
Und ich von 8i aufwärts:
ich ging halt von einer 7er aus (ich wollt’s „allgemein“ halten
Auch ohne Spool-file klappt das so:
begin
for i in ( select index_name from user_indexes) loop
EXECUTE IMMEDIATE (‚alter index ’ ||
i.index_name ||
’ rebuild noreverse‘);
end loop;
end;
*grmpf* seit einer woche bastle ich an scripts herum, verwende in jeder zweiten zeile das „execute immediate“ - und dann spoole ich doch wieder wie verrückt herum (und danach liegen dann millionen von sql-scripts in den dubiosesten temporär-verzeichnissen)
grüße,
tomh