Ver Mensaje Individual
  #2 (permalink)  
Antiguo 01/10/2010, 05:11
Avatar de gustavoh10
gustavoh10
 
Fecha de Ingreso: diciembre-2005
Ubicación: ARGENTINA
Mensajes: 196
Antigüedad: 18 años, 4 meses
Puntos: 3
Respuesta: Socorro!!! Expertos de BULK INSERT ayudarme!!!

Cita:
Iniciado por dikcc Ver Mensaje
Buenos días,

Recurro de nuevo a vosotros por que llevo 30 horas buscando una solución y no la encuentro. Espero que me podais ayudar.

Tengo una tabla en la base de datos con los siguientes campos:

* Id, int, identidad (autoincremental),
* Nombre, nvarchar (100)
* Apellido, nvarchar (100)
* Direccion, nvarchar (100)
* Num Telefono, int

Ahora tengo un fichero fich.txt. Quiero insertar el contenido de ese fichero en la tabla. La estructura del fichero es la siguiente:

1$20100904
Nombre$Apellido$Direccion$Num Telefono
Antonio$Hernandez$Avenida Sin Nombre$911231231
Antonioa$Hernandeza$Avenida Sin Nombre2$911231232

Más o menos así.

He creado un fichero .fmt para coger el formato del fichero y la estructura es la siguiente:

10.0
4
1 SQLNCHAR 2 100 "$" 2 Nombre Modern_Spanish_CI_AS
2 SQLNCHAR 2 100 "$" 3 Apellido Modern_Spanish_CI_AS
3 SQLNCHAR 2 100 "$" 4 Direccion Modern_Spanish_CI_AS
4 SQLINT 1 12 "\r\n" 5 Num Telefono ""

Por último la instrucción que realizo en SQL es la siguiente

BULK INSERT tblAbonado
FROM 'C:\201008.txt'
WITH(DATAFILETYPE ='native',ROWTERMINATOR = '\r\n',,FIELDTERMINATOR ='$',FORMATFILE = 'C:\fich.txt')

El caso es que no funciona. Actualmente el error que me da es el siguiente:
Mens. 4832, Nivel 16, Estado 1, Línea 1
Carga masiva: fin de archivo inesperado en el archivo de datos.
Mens. 7399, Nivel 16, Estado 1, Línea 1
El proveedor OLE DB "BULK" del servidor vinculado "(null)" informó de un error. El proveedor no proporcionó información acerca del error.
Mens. 7330, Nivel 16, Estado 2, Línea 1
No se puede capturar una fila del proveedor OLE DB "BULK" para el servidor vinculado "(null)".

Por favor, si alguien sabe por que puede ser, se lo agradecería muchísimo. Es vida o muerte.

Un saludo y gracias por todo
Versión de sql que usas?

No entendí como esta formateado tu archivo de texto-

El campo "Num Telefono" no debería llevar espacios.

No tengo idea de bulk insert pero voy a tratar de ayudarte en lo que puede

Tu ROWTERMINATOR no deberia ser solo '\n' ?

saludso!

Última edición por gustavoh10; 01/10/2010 a las 05:19