Я пытаюсь прочитать имена таблиц и имена индексов из двух разных текстовых файлов, а затем создаю файлы sql, которые можно использовать для дефрагментации и восстановления индекса. На данный момент он работает нормально, но сгенерированный файл sql содержит следующую строку после имени таблицы / индекса. Скрипт PFB и примеры выходных данных.
BASH Скрипт:
#!/bin/bash
export logfile=/tmp/logfile.log
export tablenamesfile=/tmp/tablenames.txt
export tabledefragfile=/tmp/tabledefrag.sql
export indexnamesfile=/tmp/indexnames.txt
export indexrebuildfile=/tmp/indexrebuild.sql
while read line; do echo "alter table $line enable row movement;" >> $tabledefragfile; echo "alter table $line shrink space;" >> $tabledefragfile; echo "alter table $line disable row movement;" >> $tabledefragfile; done < $tablenamesfile
echo "Please check sql file - $(readlink -f $tabledefragfile)"
while read line; do echo "alter index $line rebuild parameters('tablespace=TBS_3');" >> $indexrebuildfile; done < $indexnamesfile
echo "Please check sql file - $(readlink -f $indexrebuildfile)"
exit
Текущий вывод в tabledefrag. sql
alter table APA_DS_DATASTORE
enable row movement;
alter table APA_DS_DATASTORE
shrink space;
alter table APA_DS_DATASTORE
disable row movement;
Текущий вывод в indexrebuild. sql
alter index APA_DS_DATASTORE_PK
rebuild parameters('tablespace=TBS_3');
alter index APA_FS_DEFAULT_FSENTRY_IDX
rebuild parameters('tablespace=TBS_3');
alter index APA_FS_DEFAULT_FSENTRY_IDX
rebuild parameters('tablespace=TBS_3');
Ожидаемый результат:
alter index APA_DS_DATASTORE_PK rebuild parameters('tablespace=TBS_3');
alter index APA_FS_DEFAULT_FSENTRY_IDX rebuild parameters('tablespace=TBS_3');
alter index APA_FS_DEFAULT_FSENTRY_IDX rebuild parameters('tablespace=TBS_3');