Pregunta

Así que estoy tratando de hacer una inserción masiva con SSIS y continuamente obtener:

"Microsoft SQL Native Client" HRESULT: 0x80004005 Descripción: "Cadena o datos binarios podrían truncarse"

A pesar de que ya tengo una conversión de datos para cada columna en el mismo tipo exacto como la tabla que las filas están siendo insertados en. He utilizado una vista y los datos parece que se supone que justo antes de la etapa de inserción DB. Aún así obtener el error.

A continuación entré en SQL Server Management Studio y configurar una consulta de inserción en esa mesa condenados y aún así obtener el mismo error de truncamiento. Entonces hice un conjunto ANSI_WARNINGS OFF y el inserto funciona de datos se ve bien en la tabla. Ahora, cuando intento eliminar esta fila se produce el error de truncamiento.

Mi pregunta, además de cualquier insumo básico para la situación es como puedo apagar las ANSI_WARNINGS dentro de SSIS para que la carga a granel puede ir bien?

¿Fue útil?

Solución 4

Resulta que en SSIS se puede configurar el destino de OLE DB con el "Modo de Acceso a Datos> tabla o vista: Modo rápido". Cuando elegí este ajuste, la inserción masiva se realizó sin las advertencias o errores y los datos se ve perfecto en la base de datos. No estoy seguro que este cambio hizo exactamente pero funcionó y después de 16 horas en un inserto de SSIS estoy feliz con los resultados.

Gracias por las sugerencias.

Otros consejos

Parece que usted tiene una columna que es demasiado estrecha para aceptar los datos que se está presentando.

Se puede verificar si esto es o no es el caso?

Yo tenía un problema muy similares surgen con frecuencia mientras estábamos clavar un esquema con un tercero.

Se puede seleccionar un LEN de todas las columnas de la vista? Eso podría ayudar a encontrar el problema.

Aparte de eso, la única manera que he encontrado es imprimir un informe de las longitudes reales de las columnas de datos de origen.

Parece que usted tiene una fila (posiblemente más, pero sólo se necesita una!), Donde el valor de los datos es superior a la longitud de las columnas de la tabla. Hacer una conversión de datos al tipo más corto se moverá el error a lo transforman realiza la conversión desde el destino. Lo que yo recomiendo es la creación de un destino de archivos planos, y atar la salida de error de sus transformaciones para él. Cambiar el resultado de error de 'redirección Fila'. Esto permitirá que todas las filas válidas para pasar, y le proporcionará una copia de la fila (s) que se quedan truncados para que pueda manejar manualmente.

¿Hay desencadena sobre la mesa que está insertando en? A continuación, el error puede provenir de una acción que toma el gatillo.

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