У нас есть следующий индекс для таблицы:
CREATE INDEX "SCHEMA"."FINDEINTRAGURKUNDLTEIL" ON "SCHEMA"."URKUNDLTEIL" ("DATEN")
INDEXTYPE IS "CTXSYS"."CONTEXT"
PARAMETERS ('datastore FINDEINTR_URKUNLD_PREF
filter FINDEINTR_CHARSET_FILTER
lexer FINDEINTR_LEXER
section group findEintr_sectionGroup
nontransactional
SYNC (ON COMMIT)')
PARALLEL 16 ;
Атрибут процедуры предпочтения CTX был установлен следующим образом:
ctx_ddl.set_attribute (
PREFERENCE_NAME => 'FINDEINTR_URKUNLD_PREF',
ATTRIBUTE_NAME=> 'PROCEDURE',
ATTRIBUTE_VALUE => 'FINDEINTRAG.findDatenUrkundlteil')
Текстовый поиск работает нормально, индекс используется правильно.
Из-за запроса на изменение мы должны изменить код FINDEINTRAG.findDatenUrkundlteil
. Нет сомнений в том, что мы должны перекомпилировать модифицированную процедуру:
create or replace PACKAGE BODY "FINDEINTRAG" AS
procedure findDatenUrkundlteil () AS
BEGIN
/*code comes here*/
END findDatenUrkundlteil;
END FINDEINTRAG;
Мой вопрос: мы должны удалить индекс "SCHEMA"."FINDEINTRAGURKUNDLTEIL"
и создать его снова? Или же
после компиляции процедуры будет ли индекс для новых записей в таблице генерироваться с использованием новой процедуры?
С функциональной точки зрения это было бы хорошо, а именно, запрос на изменение не влияет на старые данные в базе данных и их индекс, созданный старой процедурой.