Pregunta

¿Hay alguna forma de verificar si el campo es numérico en la columna derivada / División condicional de la tarea Flujo de datos en Sql Server Integration Services 2005.

La funcionalidad debería ser como la función ISNUMERIC ().

Actualmente estoy usando

((DT_NUMERIC,12,0)fieldname= (DT_NUMERIC,12,0)fieldname)

en la expresión de columna derivada para verificar si el nombre del campo es Numérico. Pero si el nombre del campo contiene caracteres como 123ABC en lugar del número 123, la expresión anterior arroja una excepción debido a un error de conversión y se detiene la ejecución del paquete.

Si tuviéramos una función como ISNUMERIC (), entonces no necesitamos hacer todo este circo. ¿Alguien sabe si hay alguna función como esta para verificar si el campo es numérico o no en SSIS?

¿Fue útil?

Solución

Utilizamos la siguiente técnica:

  1. En el formulario de propiedad para el componente de columna derivada, puede hacer clic en el botón marcado 'Configurar salida de error' para que aparezca la configuración de salida de error.

  2. Configure las acciones de error y truncamiento para esta columna (o cualquier otra columna) para que sea " Ignore Failure "

  3. Ahora, si la conversión de esta columna falla por una fila, el paquete continuará ejecutándose. El valor de la columna para esa fila se establecerá en nulo. Puede usar un componente posterior para verificar valores nulos y tomar las medidas adecuadas.

Otros consejos

Puede redirigir filas en caso de error y manejar el error. O use una tarea de script.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top