Come eliminare la tabella $R da un CONETXT INDEX da 19c
Questo errore si verifica quando si usa una query che utilizza un CONTEXT INDEX e utilizza la l'operatore " CONTAINS " se l'indice contiene la tabella
DR$<nome indice>$R
Se il parametro COMPATIBLE è 19.0.0.0, il nuovo indice Text creato in 19c non avrà una tabella $R, per impostazione predefinita.
Tuttavia, un indice Text in 19c potrebbe avere una tabella $R se l'indice esisteva già prima che il database venisse aggiornato a 19c, oppure se l'indice è stato ricreato mentre COMPATIBLE < 19.0.0.0.
Il file di trace relatvo all'errore ORA-600 contiene un Plan Table con questa indicazione
Plan Table
============
------------------------------------------------------------+-----------------------------------+---------------+
| Id | Operation | Name | Rows | Bytes | Cost | Time | Pstart| Pstop |
--------------------+-----------------------------------+---------------+
| 0 | SELECT STATEMENT | | | | 20 | | | |
...............................
| 9 | TABLE ACCESS BY INDEX ROWID | <TABLE NAME> | 1 | 55 | 1 | 00:00:01 | | |
| 10 | DOMAIN INDEX | <domain index> | 78 | | 1 | 00:00:01 | | | >>>>>>>>> There is an Oracle Text domain index in plan
Per rimuovere la tabella $R da un indice Text in 19c:
1) il parametro COMPATIBLE deve essere maggiore o uguale di 19.0.0.0.2) Drop e recreate del Text index.
Assicurati che non ci siano carichi DML o query attivi in esecuzione sul sistema perchè potrebbe causare la corruzione dell'indice. Questa operazione non ricostruisce i dati nell'indice, ovvero non reindicizza i documenti. Modifica solo i mapping degli ID documento.
Riferimento Doc ID 3000550.1
Riferimento Doc ID 2817675.1