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

Format file - bcp & bulk insert

Estas en el tema de Format file - bcp & bulk insert en el foro de SQL Server en Foros del Web. Buenas a todos, os planteo mi caso por si me podéis echar una mano. Hice pruebas creando el format file a partir del siguiente comando: ...
  #1 (permalink)  
Antiguo 09/04/2010, 03:17
 
Fecha de Ingreso: marzo-2010
Mensajes: 9
Antigüedad: 14 años, 9 meses
Puntos: 0
Pregunta Format file - bcp & bulk insert

Buenas a todos, os planteo mi caso por si me podéis echar una mano.

Hice pruebas creando el format file a partir del siguiente comando:

Código:
C:\>bcp BBDD.dbo.Mediciones format nul -S PCX\SQLEXPRESS -T -n
-f GPS.fmt
para una tabla con los siguiente campos:

Cita:
-Fecha (varchar(50)) -> le puse varchar para realizar la prueba para evitar problemas, luego ya probaré con datetime.
-Latitud (decimal(18,8)).
- TipoLatitud (varchar(50)).
-Longitud (decimal(18,8)).
- TipoLongitud (varchar(50)).
Lo que ha generado lo siguiente:

Código:
9.0
5
1 SQLCHAR 2 50 "" 1 Fecha Modern_Spanish_CI_AS
2 SQLDECIMAL 1 19 "" 2 Latitud ""
3 SQLCHAR 2 50 "" 3 TipoLatitud Modern_Spanish_CI_AS
4 SQLDECIMAL 1 19 "" 4 Longitud ""
5 SQLCHAR 2 50 "" 5 tipoLongitud Modern_Spanish_CI_AS
hasta ahí todo normal.

Cuando trato de ejecutar el procedimiento almacenado, si especifico el format file:

Código:
BULK INSERT BBDD.dbo.Mediciones
FROM 'C:\Prueba.txt'
WITH
(
FIELDTERMINATOR = ',',
ROWTERMINATOR = ';',
FORMATFILE = 'C:\GPS.fmt'
);
Me da los siguientes errores:

Cita:
Mens 4866, Nivel 16, Estado 7, Procedimiento sp_medicionesposiciones_insert, Línea 10
Error de carga masiva. Columna demasiado larga en el archivo de datos para la fila 1, columna 1. Compruebe que especificó correctamente los valores para el terminador de campo y el terminador de fila.
Mens 7399, Nivel 16, Estado 1, Procedimiento sp_medicionesposiciones_insert, Línea 10
El proveedor OLE DB "BULK" para el servidor vinculado "(null)" informó de un error. El proveedor no proporcionó información acerca del error.
Mens 7330, Nivel 16, Estado 2, Procedimiento sp_medicionesposiciones_insert, Línea 10
No se puede recuperar una fila del proveedor OLE DB "BULK" para el servidor vinculado "(null)".
En cambio si lo ejecuto sin el FORMATFILE lo hace correctamente.

El contenido del fichero desde el que quiero realizar la carga:
23/02/2010,4330.4735414,N,00352.9613565,W; (Esta es la primera línea y el resto son del mismo estilo)

Luego por otro lado, si en vez de tener ese contenido tendría este otro:

23/02/2010,CAMPOSOBRANTE,4330.4735414,N,00352.9613565,W; ¿Cómo podría indicarle que no utilice el campo 2? ¿modificando la primera columna del archivo GPS.fmt como:

9.0
Num columnas
(no sé si sería 5 ó 6)
1 <- ¿posición de la columna en el archivo GPS.fmt?
3
4
5
6


?

Un saludo y muchas gracias de antemano.
  #2 (permalink)  
Antiguo 09/04/2010, 09:21
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 17 años, 5 meses
Puntos: 180
Respuesta: Format file - bcp & bulk insert

Si lees esta liga:

http://msdn.microsoft.com/en-us/library/ms191479.aspx

Te dara cuenta que el ORDEN de las columnas que aparecen en tu tabla se da por el numero despues de las dobles comas (izq-a-derecha) y dice, "Para prevenir que la columna reciba algun dato especificado en el archivo de formato, se debe colocar un cero"

Etiquetas: bcp, bulk, file, format, insert
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:00.