This content has been marked as final. Show 5 replies
I have to wonder why you think you need to drop and recreate the index, especially while loading data. You are already using sync(on commit). Why can't you just optimize or rebuild or drop and recreate when you are not loading? Anyhow, per the online documentation:
"ORA-29861: domain index is marked LOADING/FAILED/UNUSABLE
Cause: An attempt has been made to access a domain index that is being built or is marked failed by an unsuccessful DDL or is marked unusable by a DDL operation.
Action: *Wait if the specified index is marked LOADING* Drop the specified index if it is marked FAILED Drop or rebuild the specified index if it is marked UNUSABLE."
If you do need to recreate the index, you could create a shadow index then swap it in (assuming you have 11g):
If your table is partitioned, you might be able to use on of the tricks mentioned here:
CTX_DDL.CREATE_SHADOW_INDEX ( idx_name=>'items_description', parameter_string=>'REPLACE LEXER my_new_lexer'); CTX_DDL.EXCHANGE_SHADOW_INDEX (idx_name => 'items_description' [ partition_name => 'partname' ] );