J'ai un problème pour exécuter cette requête.
SELECT * FROM gob_attachment
WHERE CONTAINS (gob_a_document, 'java') > 0
Ça me donne
ORA-29902: error in executing ODCIIndexStart() routine
ORA-20000: Oracle Text error:
ORA-00942: table or view does not exist
29902. 00000 - "error in executing ODCIIndexStart() routine"
*Cause: The execution of ODCIIndexStart routine caused an error.
*Action: Examine the error messages produced by the indextype code and
take appropriate action.
Après quelques recherches sur Internet, j'ai découvert que le problème pouvait se situer dans l'index, mais lorsque j'ai regardé la table et l'index, ils m'ont semblé corrects.
Créer script pour l'index ressemble à ceci
CREATE INDEX FTSI_GOB_A_DOCUMENT
ON GOB_ATTACHMENT (GOB_A_DOCUMENT)
INDEXTYPE IS CTXSYS.CONTEXT;
La seule chose qui me semble étrange est que lorsque je regarde dans Edit Table dans les propriétés de la table dans SQL Developer, je peux voir que le statut opérationnel de l'index est FAILED. Quelqu'un sait-il ce que cela signifie, peut-être les droits de la base de données ?
Cela fonctionne également lorsque j'utilise
dbms_lob.instr(gob_a_document, utl_raw.cast_to_raw('java')) > 0
au lieu de contains
Merci pour tout conseil
P.S. C'est en rapport avec ma question précédente Performances de Oracle DBMS_LOB.INSTR et CONTAINS
UPDATE
Après avoir recréé l'index et avoir joué un peu avec, j'ai découvert que je peux exécuter la requête ci-dessus, mais qu'elle ne me renvoie rien.
Si je l'essaie avec CONTAINS(gob_a_document, '%')
Le résultat est de 26 lignes et je ne sais pas par quelle clé la requête les a sélectionnées (du moins je n'ai rien trouvé d'évident, je vais l'étudier davantage). Le problème pourrait venir du fait que nous utilisons Oracle 10g et que nous stockons des fichiers DOCX qui sont pris en charge à partir de la version 11.