Controlar errores en los datos
Actualizado: 5 de diciembre de 2005
Cuando un componente de flujo de datos aplica una transformación a los datos de columna, extrae datos de orígenes o carga datos en destinos, pueden producirse errores. Los errores con frecuencia se producen debido a valores de datos inesperados. Por ejemplo, una conversión de datos genera un error porque una columna contiene una cadena en lugar de un número, una inserción en una base de datos genera un error porque los datos corresponden a una fecha y la columna tiene un tipo de datos numéricos, o una expresión genera un error al evaluarse porque el valor de la columna es cero, lo que da como resultado una operación matemática no válida.
Los errores normalmente corresponden a una de las siguientes categorías:
- Errores de conversión de datos, que se producen cuando la conversión tiene como resultado la pérdida de dígitos significativos, la pérdida de dígitos insignificantes y el truncamiento de cadenas. Los errores de conversión de datos también se producen si la conversión requerida no se admite.
- Errores de evaluación de expresiones, que se producen si las expresiones que se evalúan en tiempo de ejecución realizan operaciones no válidas o pasan a ser sintácticamente incorrectas debido a valores de datos faltantes o incorrectos.
- Errores de búsqueda, que se producen si una operación de búsqueda genera un error al intentar buscar una coincidencia en la tabla de búsqueda.
Muchos componentes de flujo de datos admiten salidas de error, que le permiten controlar la forma en que el componente controla los errores de nivel de fila en los datos entrantes y salientes. El modo en que se comporta el componente cuando se produce un truncamiento o error se especifica estableciendo opciones en columnas individuales en la entrada o la salida. Por ejemplo, puede especificar que el componente genere un error si se truncan los datos de nombre del cliente, pero que omita los errores en otra columna que contenga datos menos importantes.
La salida de error se puede conectar a la entrada de otra transformación o cargarse en un destino diferente de la salida que no es de error. Por ejemplo, la salida de error puede estar conectada a una transformación Columna derivada que proporciona una cadena para una columna en blanco.
El siguiente diagrama muestra un flujo de datos simple que incluye una salida de error.
Además de las columnas de datos, la salida de error incluye las columnas ErrorCode y ErrorColumn. La columna ErrorCode identifica el error y la columna ErrorColumn contiene el identificador de linaje de la columna de error. Para ver los metadatos de estas columnas, haga clic en la ruta que conecta la salida de error al siguiente componente en el flujo de datos. En algunas circunstancias, el valor de la columna ErrorColumn se establece en cero. Esto ocurre cuando la condición de error afecta a toda la fila en lugar de a una única columna. Un ejemplo es cuando se produce un error de búsqueda en la transformación Búsqueda.
Para obtener más información, vea Elementos de flujo de datos y Rutas de Integration Services.
Para obtener una lista de los errores, advertencias y otros mensajes de Integration Services, vea Integration Services Error and Message Reference.
Opciones de errores y truncamiento
Los errores se asocian a una de estas dos categorías: errores o truncamientos. Un error indica un error inequívoco y genera un resultado NULL. Tales errores pueden incluir errores de conversión de datos o errores de evaluación de expresiones. Por ejemplo, un intento para convertir una cadena que contiene caracteres alfabéticos en un número produce un error. Las conversiones de datos, evaluaciones de expresiones y asignaciones de resultados de expresiones a variables, propiedades y columnas de datos pueden dar error debido a conversiones no válidas y tipos de datos incompatibles. Para obtener más información, vea Conversión de tipos (SSIS), Conversión de tipos de datos en las expresiones y Tipos de datos de Integration Services.
Un truncamiento es de menor gravedad que un error. Un truncamiento genera resultados se pueden utilizar o que inclusive pueden ser beneficiosos. Puede elegir tratar los truncamientos como errores o como condiciones aceptables. Por ejemplo, si está insertando una cadena de 15 caracteres en una columna que sólo tiene un carácter de ancho, puede elegir truncar la cadena.
Puede configurar la manera en que los orígenes, transformaciones y destinos controlan errores y truncamientos. Las opciones se describen en la siguiente tabla.
Opción | Descripción |
---|---|
Error de componente |
La tarea Flujo de datos genera un error cuando se produce un error o truncamiento. El error es la opción predeterminada para un error o truncamiento. |
Omitir error |
El error o truncamiento se omite y la fila de datos se dirige a la salida de la transformación u origen. |
Redirigir fila |
La fila de datos de error o truncamiento se dirige a la salida de error del origen, transformación o destino. |
Agregar la descripción del error
De forma predeterminada, una salida de error proporciona el código de error numérico y generalmente contiene el identificador de la columna en la que ocurrió el error. Puede utilizar el componente de secuencia de comandos para incluir la descripción del error en una columna adicional mediante el uso de una única línea de la secuencia de comandos para llamar al método M:Microsoft.SqlServer.Dts.Pipeline.Wrapper.IDTSComponentMetaData90.GetErrorDescription(System.Int32) de la interfaz T:Microsoft.SqlServer.Dts.Pipeline.Wrapper.IDTSComponentMetaData90.
El componente de secuencia de comandos se puede agregar al segmento de error del flujo de datos en cualquier componente de nivel inferior de los componentes de flujo de datos cuyos errores desea capturar, pero generalmente se ubica inmediatamente antes de las filas de error escritas para un destino. De esta manera, la secuencia de comandos sólo busca descripciones para filas de error escritas. Por ejemplo, el segmento de error del flujo de datos puede corregir algunos errores y no escribir esas filas para un destino de error. Para obtener más información, vea Enhancing an Error Output with the Script Component.
Para configurar una salida de error
Vea también
Tareas
Solucionar problemas de Integration Services
Agregar una tarea Flujo de datos
Extraer datos
Transformar datos
Cargar datos
Conectar componentes
Conceptos
Tarea Flujo de datos
Elementos de flujo de datos
Crear un flujo de datos de paquetes
Ayuda e información
Obtener ayuda sobre SQL Server 2005
Historial de cambios
Versión | Historial |
---|---|
5 de diciembre de 2005 |
|