Pregunta

Estoy usando bcp para importar un archivo plano en una base de datos de SQL Server 2005.

Estoy corriendo en un problema con los campos de fecha y hora.

Mi campo de archivo de formato se especifica como:

<COLUMN SOURCE="15" NAME="DATEOFSERVICE" xsi:type="SQLDATETIME"/>

Mi archivo de datos se ha formateado como fechas: 19820101

Sin embargo, algunos (muchos) están llenos de 00000000

Las fechas 00000000 dejan de importar correctamente debido a una coincidencia de tipos.

¿Hay una manera de especificar mi archivo de formato para manejar las fechas llevado a cero? O una forma de saber BCP para introducir un defecto si se trata través 00000000?

¿Fue útil?

Solución

Yo sugeriría que se crea una tabla temporal, donde se especifica la columna de la fecha como un tipo de datos varchar. A continuación, el BCP sus datos a la tabla temporal. Después de los datos se cargan en la tabla temporal, se puede fregar la fecha (en sustitución de 00 millones con NULL, por ejemplo). Por último, una vez que se valida sus datos, copiarlo en las tablas reales.

Esto puede no funcionar muy bien para los archivos de datos extremadamente grandes, pero no estoy seguro cómo usted lograr esto tampoco.

Otros consejos

Me gustaría utilizar OPENROWSET con una declaración de caso para hacer el traducción al importar los datos.

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