¿Existe una consulta en Snowflake para identificar los caracteres de un archivo que no son válidos? Utf8 [duplicado]
Tengo un archivo que cuando se carga en Snowflake obtiene un error por caracteres UTF-8 no válidos, logré cargarlo en una tabla usando otra codificación, creando un formato de archivo con opción, ENCODING = 'iso-8859-1'
pero me gustaría encontrar una manera de obtenerlos. personajes consultados.
Probé la TO_BINARY(col,'UTF-8')
función con la esperanza de que falle en la columna que tiene UTF-8 no válido pero no pude obtener un resultado válido para capturar esos caracteres, ¿alguien se ha enfrentado al mismo problema?
Respuestas
Tenga en cuenta que TODOS los datos de caracteres dentro de Snowflake están codificados mediante UTF-8 . No hay otra opción. Hace un tiempo, esto no era estrictamente cierto, y era posible tener datos de personajes en Snowflake que NO eran UTF-8 válido. Pero eso no debería ser posible ahora.
Al especificar la ENCODING = 'iso-8859-1'
opción, Snowflake (durante la operación COPY INTO) debía realizar la traducción del juego de caracteres en el archivo (que luego se interpretó como codificado en ISO-8859-1), mapeando todos los caracteres en su equivalente UTF-8 tal como se escribió en Copo de nieve. Como resultado, todos los datos en Snowflake están codificados en UTF-8 y, por lo tanto, no debe haber NINGÚN carácter que no sea UTF-8 para descubrir. Dicho esto, es posible que el resultado de la traducción del juego de caracteres no termine traduciéndose a los caracteres UTF-8 correctos / esperados si el archivo subyacente (fuente) no se codificó realmente con la codificación que especificó durante el COPY INTO (en este caso, ISO -8859-1).
Dado esto, ¿cuál es el problema final que está tratando de resolver aquí? ¿Cargó un archivo de origen ENCODING = 'iso-8859-1'
que no era en realidad ISO-8859-1? ¿O está diciendo que el archivo de origen FUE realmente codificado como ISO-8859-1 y, sin embargo, de alguna manera los caracteres resultantes en Snowflake son (1) incorrectos o (2) UTF-8 no válidos? ¿O está tratando de determinar la codificación real de un archivo de origen (ignorando todo el aspecto ISO-8859-1 por completo)?
Respuesta detallada encontrada aquí ¿Cómo encontrar filas con caracteres que no sean utf8 en Snowflake?
Debería marcar mi pregunta como duplicada y consultar el enlace, por favor.