LIKE incompatible avec les CLOB ? - SQL/NoSQL - Programmation
Marsh Posté le 16-02-2004 à 15:14:33
bon j'ai trouvé une "parade" qui consiste a utiliser
select * from contenu where dbms_lob.instr (CONTENU, 'toto') > 0;
L'inconvénient c'est que la je ne vois pas comment rendre ma recherche non case-sensitive (avec LIKE, j'utilisais UPPER() )
Marsh Posté le 22-06-2005 à 16:23:31
j'ai le meme probleme que toi sauf que j'utilise un blob ...
j'utilise aussi la fonction dbms_lob.instr mais a chaque fois j'ai cette erreur qui s'affiche :
PL/SQL: numeric or value error: hex to raw conversion error
Marsh Posté le 26-06-2005 à 23:04:56
blob, c'est normal, c'est du binaire, tu peux pas faire des recherches de mots sur un flux binaire dont on ne connait pas l'encodage...
sinon, ouais, y'a pas moyen de faire un LIKE sur ces types (enfin... sur le blob, c'est encore plus logique), pour la simple et bonne raison qu'un clob ou un blob peuvent contenir plusieurs Go de données (2 Go pour SQL Server, et je ne me souvient plus pour Oracle).
Par conséquent, c'est une erreur monumentale de vouloir faire des recherches de ce type sur ce genre de fichiers.
Installez le package "Intermedia Text Search" ou un truc comme ça (c'est gratuit depuis la 9i). Là, ça va indexer correctement votre champ, et vous pourrez faire des recherches bien plus complèxes qu'un LIKE, avec en plus une rapidité incomparable.
Ca correspond aux fonctions de recherche "freetext" ou "contains" de MySQL et SQL Server. Sauf qu'en plus c'est plus puissant sous Oracle.
Marsh Posté le 27-06-2005 à 14:09:50
merci de ta reponse arjuna
le package "Intermedia Text Search" est installe par defaut dans la 9i r2 ou il faut faire une installe en plus ?
Marsh Posté le 27-06-2005 à 14:30:25
Je doute que ce soit installé par défaut, puisque c'est à l'origine una autre société qu'Oracle qui produit ce package.
Désolé, je ne peux pas t'aider à l'installer, au boulot, j'en ai eu besoin un coup, j'ai envoyé un mail au DBA avec un lien vers le produit et... lui il a fait le reste
(et là, je ne suis plus du tout chez ce client)
Marsh Posté le 16-02-2004 à 14:35:16
Bah alors ca, j'ai l'impression qu'on ne peut pas faire de like avec des clob ..... c'est couillon ca alors
pq il faut tjrs que j'ai des merdes innatendus au dernier moment ???
Y a t'il une methode pour faire un like sur un clob ????
Merci a tous!
Xc0r
edit : oracle 8.1.7
Message édité par xc0r le 16-02-2004 à 14:43:56