Tengo un paquete SSIS con un flujo de datos que toma una fuente de datos ADO.NET (solo una tabla pequeña), ejecuta una consulta de selección * y muestra los resultados de la consulta en un archivo plano (también intenté simplemente extraer el toda la tabla y no usando una selección de SQL).¿Cómo obtengo flujo de datos de SSIS para poner '0.00' en un archivo plano?
El problema es que la fuente de datos extrae una columna que es un tipo de datos Money, y si el valor no es cero, entra en el archivo de texto sin problemas (como '123.45'), pero cuando el valor es cero , aparece en el archivo plano de destino como '00 '. Necesito saber cómo volver a poner el cero inicial en el archivo plano.
He intentado varios tipos de datos para la salida (en el administrador de conexión de archivos planos), incluyendo moneda y cadena, pero esto parece no tener ningún efecto.
He intentado una declaración en mi caso de selección, así:
CASE WHEN columnValue = 0 THEN
'0.00'
ELSE
columnValue
END
(todavía provoca' .00')
He intentado variaciones en que de esta manera:
CASE WHEN columnValue = 0 THEN
convert(decimal(12,2), '0.00')
ELSE
convert(decimal(12,2), columnValue)
END
(todavía da lugar a' 0,00')
y:
CASE WHEN columnValue = 0 THEN
convert(money, '0.00')
ELSE
convert(money, columnValue)
END
(resultados en' ,0000000000000000000')
Este pequeño problema tonto es matándome. ¿Alguien puede decirme cómo obtener un valor cero de la base de datos de datos de Money en un archivo plano como '0,00'?
Me gustaría saber la causa de este problema - No estoy realmente cómodo con el truco de la columna derivada. – PeterX