Nutzt man Oracle Text Indizes in einer Oracle Standard Edition tappt man ungewollt in eine Lizenzfalle. In einer Standard Edition Datenbank darf man keine Index Key Compression nutzen. Im Oracle 19c License Guide findet man dies als Prefix Compression ganz eindeutig:

Oracle hat den Default für die X$INDIZES, die mit Oracle Text Indizes angelegt werden, auf COMPRESS 2 – und somit Prefix Compression – festgelegt. Sobald man somit einen Oracle Text Index anlegt, findet man in DBA_INDEXES folgendes:
INDEX_NAME COMPRESSION
------------------ ---------------
DR$KD_NAME1$X ENABLED
DR$KD_NAME2$X ENABLED
DR$KD_STRASSE$X ENABLED
...
Im Fall eines Lizenzaudits wird Oracle dies beanstanden und auf die Lizenzierung einer Enterprise Edition bestehen. Man findet diese Nutzung auf in der DBFUS.
select name, DETECTED_USAGES, LAST_USAGE_DATE
from dba_feature_usage_statistics
where name='Advanced Index Compression';
NAME DETECTED_USAGES LAST_USAG
------------------------------ --------------- ---------
Advanced Index Compression 2 01-MAR-26
Oracle Text Indizes in SE2 lizenzkorrekt anlegen
Plant man somit in eine Nutzung von Oracle Text Indizes in der Standard Edition, muss man vor dem Erstellen der Indizes folgende Schritte durchführen:
Den Default auf NOCOMPRESSED Indizes umstellen:
begin
ctx_ddl.create_preference('NOCOMPRESS_STORE', 'BASIC_STORAGE');
ctx_ddl.set_attribute('NOCOMPRESS_STORE', 'I_INDEX_CLAUSE','NOCOMPRESS');
end;
/
Die bestehenden Indizes muss man nachträglich entsprechend rebuilden:
alter index <index_name> rebuild
parameters ('replace storage NOCOMPRESS_STORE');
Alternativ kann man dies auch beim Anlegen eines Index angeben:
create index T1_Test on t1(object_name)
indextype is ctxsys.context parameters('storage NOCOMPRESS_STORE');
Zusammenfassung
Plant man somit die Nutzung von Oracle Text Indizes in einer Standard Edition 2, muss man im Vorfeld die Hausaufgaben machen und den Default für die Indizes auf NOCOMPRESS umstellt.
