Bonjour à tous,

Voila, j'ai un magnifique champ LONG dans lequel j'essaye de rechercher une chaine de caractère... Je sais c'est à priori impossible.

J'ai essayé de faire une fonction transformant le LONG en varchar2 (avec pertes) :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
create or replace function comm (ind51 in NUMBER) return varchar2 is
res varchar2(400) ;
begin
     select commentaire into res from &user_cort.rep_act where P51=ind51 ;
     return res ;
end comm ;
/
et de l'utiliser comme ca :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
update ic_actes
       set actes_compl = 1
       where
            comm (ic_actes.E51) LIKE '%toto%'
;
Je reçois en réponse un


ORA-06502: PL/SQL : erreur numérique ou erreur sur une valeur: tampon de chaîne
de caractères trop petit
J'ai réduit la longueur du varchar2 de la fonction à 1, sans changement...

Pitié, ne me dites pas que c'est pas possible... (ou je pose ma démission )