Estoy dando soporte a un proceso ETL que transforma las entradas de archivo plano en una tabla de base de datos SqlServer. El código es casi 100% T-SQL y se ejecuta dentro de la base de datos. No poseo el código y no puedo cambiar el flujo de trabajo. Solo puedo ayudar a configurar el SQL de "traducción" que toma los datos del archivo y los convierte en datos de tabla (más sobre esto más adelante).Convertir/Convertir un nVarChar con Separador de Comas en Decimal
Ahora que las renuncias son fuera del camino ...
Uno de nuestros proveedores de archivos recientemente cambió la forma en que representan una cantidad monetaria '12345.67'
-'12,345.67'
. Nuestro SQL que transforma el valor se ve como SELECT FLOOR(CAST([inputValue] AS DECIMAL(24,10)))
y ya no funciona. Es decir, la coma rompe el elenco.
Dado que tengo para almacenar el valor final como Decimal (24,10)
tipo de datos (sí, soy consciente de la FLOOR
toallitas toda precisión después de la coma decimal - el diseñador no estaba en sintonía con el cliente), ¿qué puedo hacer para lanzar esta cadena de manera eficiente? '
Gracias por sus ideas.
¿Alguna de estas respuestas resolvió su problema? –
@KM: ahora estoy discutiendo estas sugerencias con nuestro grupo de DBA. Desde mi punto de vista, el enfoque común propuesto (utilizando Reemplazar()) parece funcionar. Se actualizará pronto. – SethO