Bonjour,
J'aimerais faire une recherche de caractères dans un champs de type LONG.
Le LIKE est utilisé pour les recherche dans les champs de type texte, donc comment faire pour trouver le même résultats sur un LONG?
D'avance merci
Bonjour,
J'aimerais faire une recherche de caractères dans un champs de type LONG.
Le LIKE est utilisé pour les recherche dans les champs de type texte, donc comment faire pour trouver le même résultats sur un LONG?
D'avance merci
Heuuu, je ne sais pas pourquoi ça ne marche pas.
Je fais: LOG.DETAILS LIKE '%Deadline%'
Et j'ai le message suivant "ORA-00932: inconsistent datatypes: expected NUMBER got LONG"...
Je ne comprend pas, merci pour ta réponse
Pardon, je pensais que LONG était un type numérique (je suis dans VB en ce moment).
Je constate que la doc Oracle précise :
Ton message d'erreur est un peu surprenant... Essaie déjà comme ça :Do not create tables with LONG columns. Use LOB columns (CLOB, NCLOB, BLOB) instead. LONG columns are supported only for backward compatibility.
Code : Sélectionner tout - Visualiser dans une fenêtre à part CAST(LOG.DETAILS AS VARCHAR2(255)) LIKE '%Deadline%'
Aucun problème
En effet, je trouve aussi un peut bizarre qui des LONG soit utilisés dans cette table, mais je suis obligé de faire avec
En fait j'ai essayé avec ta solution, mais j'ai exactement le même message d'erreur. Je me demande si je ne dois pas utiliser les CLOB?!
Mais je ne connais rien là dedans...
Merci
Ok, alors finalement j'ai trouvé une solution.
Une peu plus contraignante que ce que je pensais, mais j'ai utilisé un curseur en PL/SQL. Le curseur modifier lui même le type pour la comparaison.
Il suffit ensuite de boucler sur les résultats du curseur et faire un simple IF:
Merci pour les quelques conseils.
Code : Sélectionner tout - Visualiser dans une fenêtre à part if instr(wrec.details, 'TEXTE A RECHERCHER') > 0
Partager