Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Rechercher des caractères non ASCII dans les colonnes varchar à l'aide de SQL Server

Voici une solution pour la recherche sur une seule colonne à l'aide de PATINDEX.
Il affiche également la StartPosition, InvalidCharacter et le code ASCII.

select line,
  patindex('%[^ !-~]%' COLLATE Latin1_General_BIN,Line) as [Position],
  substring(line,patindex('%[^ !-~]%' COLLATE Latin1_General_BIN,Line),1) as [InvalidCharacter],
  ascii(substring(line,patindex('%[^ !-~]%' COLLATE Latin1_General_BIN,Line),1)) as [ASCIICode]
from  staging.APARMRE1
where patindex('%[^ !-~]%' COLLATE Latin1_General_BIN,Line) >0