Détec­ter les caract…
 
Notifications 
Reti­rer tout

Détec­ter les carac­tères incor­rects d’une colonne avec une requête SQL

Posts
Uti­li­sa­teurs
Reac­tions
84  Vu
0
Début du sujet

Bon­jour, je sou­haite par une requête unique détec­ter tous les enre­gis­tre­ments d’une table pour les­quels une colonne contient des carac­tères incor­rects (c’est à dire < X’40′). j’a­vais trou­vé la fonc­tion regex_like mais celle-ci me ren­voie tous les enregistrements :

SELECT *
Éti­quettes du sujet
1 Réponse 
0
Début du sujet

ça ne marche pas parce que les fonc­tions REGEXP_… (expres­sions régu­lières) testent les valeurs ASCII des chaines bien que celles-ci soient sto­ckées en EBCDIC.

Il n’existe pas une plage unique en ASCII/UTF8 cor­res­pon­dant à la plage de carac­tères EBCDIC x’40′-x’FF’.

La classe de carac­tères ASCII ‘[^\x20-\x7E]’ répond à la défi­ni­tion de carac­tères non impri­mables en ASCII mais com­prend pour­tant les carac­tères accen­tués ain­si que beau­coup de carac­tères spé­ciaux tra­dui­sibles en EBCDIC. Il fau­drait donc la res­treindre encore.

On peut néan­moins utiliser :

SELECT *
FROM MABIB.MATABLE T1
WHERE REGEXP_LIKE(T1.MACOLONNE, '[^\x20-\x7E]');

Share :