Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

Error con Bulk Insert con Campo de Fechas

Estas en el tema de Error con Bulk Insert con Campo de Fechas en el foro de SQL Server en Foros del Web. Señores necesito de vuestra ayuda con una carga masiva de datos que estoy realizando....les cuento el detalle... necesito cargar un archivo plano con campos de ...
  #1 (permalink)  
Antiguo 19/04/2013, 13:16
 
Fecha de Ingreso: abril-2013
Mensajes: 3
Antigüedad: 11 años
Puntos: 0
Error con Bulk Insert con Campo de Fechas

Señores necesito de vuestra ayuda con una carga masiva de datos que estoy realizando....les cuento el detalle...
necesito cargar un archivo plano con campos de longitud fija a una base de datos sql server 2012 express, el tema que lo estoy realizando a traves de la instrucción Bulk Insert y con archivo de formato, la instrucción es la siguiente:
BULK INSERT tabla From 'C:\DatosSql\data.dat' With (FORMATFILE ='C:\DatosSql\data.fmt')
ambos archivos como el sql server se encuentran en el mismo equipo o servidor. El archivo de datos posee lo siguiente:
0004027041735PI01182012032601318180000037170489968 PIIMLIQ 99999 00005FFFFFFFFFFFFFFFFFFFFFFFFFFFFF
0004037041735PI00502012032601218330000037170452853 PIIMLIQ 99999 00005FFFFFFFFFFFFFFFFFFFFFFFFFFFFF
El archivo de formato es el siguiente:
11.0
17
1 SQLCHAR 0 7 0 1 correlativo ""
2 SQLCHAR 0 6 0 2 nota_pedido ""
3 SQLCHAR 0 2 0 3 proceso ""
4 SQLCHAR 0 4 0 4 empleado ""
5 SQLCHAR 0 8 0 5 fecha ""
6 SQLCHAR 0 7 0 6 cantidad ""
7 SQLCHAR 0 9 0 7 valor_proceso ""
8 SQLCHAR 0 7 0 8 total_proceso ""
9 SQLCHAR 0 2 0 9 tarifa ""
10 SQLCHAR 0 6 0 10 articulo ""
11 SQLCHAR 0 5 0 11 cliente ""
12 SQLCHAR 0 1 0 12 normal ""
13 SQLCHAR 0 2 0 13 hora ""
14 SQLCHAR 0 2 0 14 minuto ""
15 SQLCHAR 0 1 0 15 tipo_emp ""
16 SQLCHAR 0 6 0 16 orden_corr ""
17 SQLCHAR 0 29 \r\n 0 Filler ""
Al ejecutar la instrucción, este da el siguiente mensaje de ERROR:
"Error de conversion de datos de carga masiva (tipo no coincidente o carcater no válido para la página de códigos especificada) en la fina 1 columna 5 (fecha)
Como dato, la estructura de la tabla en donde se almacenarán los datos es la siguiente:
correlativo int default NULL,
nota_pedido int default NULL,
proceso char(2) default NULL,
empleado int default NULL,
fecha datetime default NULL,
cantidad int default NULL,
valor_proceso decimal(9,3) default NULL,
total_proceso int default NULL,
tarifa char(2) default NULL,
articulo varchar(6) default NULL,
cliente int default NULL,
normal char(1) default NULL,
hora char(2) default NULL,
minuto char(2) default NULL,
tipo_emp int default NULL,
orden_corr int default NULL
Mi configuración regional considera la fecha aaaa/MM/dd.
Agradeceré vuestra ayuda ya que llevo bastante tiempo (3 dias) buscando quien me pueda ayudar en este tema, muchas gracias.
Ciclope1
  #2 (permalink)  
Antiguo 19/04/2013, 14:04
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Error con Bulk Insert con Campo de Fechas

cual es tu separador? el espacio en blanco? te recomiendo que uses un caracter especial como separador de campos como por ejemplo | % & etc, que son caracteres poco usuales, porque en lugar de usar el archivo de formato en texto no usas un archivo de formato xml?(es mas facil de entender) y para verificar que el bulk insert se haga de manera correcta puedes revisar tu archivo con la instruccion open row_set

saludos!
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #3 (permalink)  
Antiguo 19/04/2013, 15:12
 
Fecha de Ingreso: abril-2013
Mensajes: 3
Antigüedad: 11 años
Puntos: 0
Respuesta: Error con Bulk Insert con Campo de Fechas

no posee separador, es de longitud de fija de campos.

gracias por responder.
  #4 (permalink)  
Antiguo 19/04/2013, 15:14
 
Fecha de Ingreso: abril-2013
Mensajes: 3
Antigüedad: 11 años
Puntos: 0
Respuesta: Error con Bulk Insert con Campo de Fechas

y no se puede incorporar un delimitador de campos ya que dicha base se genera de forma automática por sistema y si la preproceso aumentos los tiempos considerablemente y la idea es reducirlos..

Saludos
  #5 (permalink)  
Antiguo 19/04/2013, 15:46
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Error con Bulk Insert con Campo de Fechas

20120326 ya te fijaste que ese formato de fecha se acepte en tu base de datos?
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #6 (permalink)  
Antiguo 19/04/2013, 16:25
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: Error con Bulk Insert con Campo de Fechas

Subelo como CHAR y una vez arriba, sacas a todos aquellos que no coincidan con el formato de fecha.

SELECT * FROM <Tutabla> WHERE ISDATE(fecha) = 0
__________________
MCTS Isaias Islas

Etiquetas: bulk, campo, campos, insert, server, sql, tabla
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 02:27.