Bonjour,
je viens de créer une nouvelle fonction qui enlève les accents + autres caractères d'une chaine de caractères :
Quand j'utilise la fonction dans le select :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37 CREATE OR REPLACE FUNCTION IACCENT (STR VARCHAR(4000)) RETURNS VARCHAR(4000) LANGUAGE SQL CONTAINS SQL RETURN UPPER(REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( REPLACE(STR , ' ' , '' ) , '*' , '' ) , '_' , '' ) , '-' , '' ) , 'é' , 'e' ) , 'è' , 'e' ) , 'ç' , 'c' ) , 'à' , 'a' ) , 'ù' , 'u' ) , 'â' , 'a' ) , 'ê' , 'e' ) , 'î' , 'i' ) , 'ô' , 'o' ) , 'û' , 'u' ) , 'ö' , 'o' ) , 'ï' , 'i' ))
ou quand je l'utilise avec l'opérateur = :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 select IAccent(FIRSTNAME) from table
cela fonctionne sans problème.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 select * from table where column = IAccent( 'éà')
Par contre, quand je l'utilise avec l'opérateur LIKE à la place du =, j'obtiens cette erreur :
Quelqu'un peut m'aider?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 The SQL statement failed because of a non-severe system error. Subsequent SQL statements can be processed. (Reason "Unknown function protocol".). SQLCODE=-901, SQLSTATE=58004, DRIVER=4.11.69
Merci d'avance.
Partager