Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Localizar caracteres não ASCII em colunas varchar usando o SQL Server


Aqui está uma solução para a pesquisa de coluna única usando PATINDEX.
Ele também exibe o código StartPosition, InvalidCharacter e 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