LIKE incompatible avec les CLOB ?

LIKE incompatible avec les CLOB ? - SQL/NoSQL - Programmation

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  ??? :)
 

Code :
  1. SQL>select CONTENU from CONTENU where CONTENU like 'toto';
  2. select CONTENU from CONTENU where CONTENU like 'toto'
  3.                                   *
  4. ERROR at line 1:
  5. ORA-00932: inconsistent datatypes
  6. SQL>


 
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
Reply

Marsh Posté le 16-02-2004 à 14:35:16   

Reply

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() )


Message édité par xc0r le 16-02-2004 à 15:14:55
Reply

Marsh Posté le 22-06-2005 à 16:21:09    

up

Reply

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

Reply

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.

Reply

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 ?  

Reply

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 :D
 
(et là, je ne suis plus du tout chez ce client)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed