lunes, 8 de septiembre de 2008

Excel a Sql Server 2005

A la hora de importar un archivo .xls a Sql Server 2005, se presentó el error 0xc020901c : Tarea Flujo de datos: Error con columna de salida "%1" (33) en salida "Salida de origen de "Excel" (9). Se devolvió el estado de columna: "Se truncó el texto o no hubo coincidencia para uno o varios caracteres en la página de códigos de destino."
Esto puede suceder porque efectivamente, el tamaño de la columna destino es menor al de los datos que se están importando y/o éstos últimos contienen caracteres Unicode; para no fallar y así de rápido, define la columna destino como nvarchar(MAX).
Esto no resuelve todo, aparte hay que modificar la configuración del Jet driver, cambiar el valor de TypeGuessRows a 0 para que se revisen tooooodos los renglones de la hoja, en la estimación de la máxima longitud de la columna origen, de lo contrario, sólo se usan los primeros n renglones. Ejemplo, supongamos que TypeGuessRows vale 2, en renglón 1 tienes "abc" y en el 2 "defg" pero en el 3 hay "hijklmn", ya bailó, porque el motor cree que la mayor longitud es 4, como en "defg".
Aquí encontré la solución, te advierte que con ese cambio, puede haber una baja en el desempeño al importar archivos grandes.

3 comentarios:

Economía & Sociedad dijo...

Funcionó! Funcionó! Funcionó! Gracias!

Economía & Sociedad dijo...

Funcionó! Funcionó! Funcionó! Gracias!

Pedro dijo...

Muchas gracias, gran aporte, me salvaste la mañana =)