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

Socorro!!! Expertos de BULK INSERT ayudarme!!!

Estas en el tema de Socorro!!! Expertos de BULK INSERT ayudarme!!! en el foro de SQL Server en Foros del Web. 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 ...

  #1 (permalink)  
Antiguo 01/10/2010, 04:57
 
Fecha de Ingreso: junio-2010
Mensajes: 134
Antigüedad: 14 años, 5 meses
Puntos: 0
Socorro!!! Expertos de BULK INSERT ayudarme!!!

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

Última edición por dikcc; 01/10/2010 a las 05:05
  #2 (permalink)  
Antiguo 01/10/2010, 05:11
Avatar de gustavoh10  
Fecha de Ingreso: diciembre-2005
Ubicación: ARGENTINA
Mensajes: 196
Antigüedad: 19 años
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
  #3 (permalink)  
Antiguo 01/10/2010, 05:21
 
Fecha de Ingreso: junio-2010
Mensajes: 134
Antigüedad: 14 años, 5 meses
Puntos: 0
Respuesta: Socorro!!! Expertos de BULK INSERT ayudarme!!!

Gracias por contestas

SQL Server 2008

El formato del archivo es lo que se generó al ejecutar la instrucción en la consola de Windows de BCP (genera un archivo .fmt a partir de una tabla de la base de datos)

Lo de los espacios no influye, da el mismo error.

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

Cita:
Iniciado por dikcc Ver Mensaje
Gracias por contestas

SQL Server 2008

El formato del archivo es lo que se generó al ejecutar la instrucción en la consola de Windows de BCP (genera un archivo .fmt a partir de una tabla de la base de datos)

Lo de los espacios no influye, da el mismo error.

Gracias
Tu ROWTERMINATOR no deberia ser solo '\n' ?

el txt original tiene los datos separdos por $, podrias pegar 3 o 4 lineas para verlo.

vi que es muy directa la importación, pero no se como es tu caso.
  #5 (permalink)  
Antiguo 01/10/2010, 05:39
 
Fecha de Ingreso: junio-2010
Mensajes: 134
Antigüedad: 14 años, 5 meses
Puntos: 0
Respuesta: Socorro!!! Expertos de BULK INSERT ayudarme!!!

Con el "\n" sigue sin rular.

La importación es masiva, se generan los ficheros TXT tal cual, los cuales no puedo tocar, y los debo importar en la tabla.

Gracias
  #6 (permalink)  
Antiguo 01/10/2010, 05:45
Avatar de gustavoh10  
Fecha de Ingreso: diciembre-2005
Ubicación: ARGENTINA
Mensajes: 196
Antigüedad: 19 años
Puntos: 3
Respuesta: Socorro!!! Expertos de BULK INSERT ayudarme!!!

Cita:
Iniciado por gustavoh10 Ver Mensaje
Tu ROWTERMINATOR no deberia ser solo '\n' ?

el txt original tiene los datos separdos por $, podrias pegar 3 o 4 lineas para verlo.

vi que es muy directa la importación, pero no se como es tu caso.
el txt original tiene los datos separdos por $??????
podrias pegar 3 o 4 lineas para verlo.
  #7 (permalink)  
Antiguo 01/10/2010, 05:54
 
Fecha de Ingreso: junio-2010
Mensajes: 134
Antigüedad: 14 años, 5 meses
Puntos: 0
Respuesta: Socorro!!! Expertos de BULK INSERT ayudarme!!!

Este es el contenido del TXT:

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

La primera línea la salto, la segunda también ya que son los nombres de las columnas, es a partir de la 3ª.

Gracias
  #8 (permalink)  
Antiguo 01/10/2010, 06:00
Avatar de gustavoh10  
Fecha de Ingreso: diciembre-2005
Ubicación: ARGENTINA
Mensajes: 196
Antigüedad: 19 años
Puntos: 3
De acuerdo Respuesta: Socorro!!! Expertos de BULK INSERT ayudarme!!!

Cita:
Iniciado por dikcc Ver Mensaje
Este es el contenido del TXT:

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

La primera línea la salto, la segunda también ya que son los nombres de las columnas, es a partir de la 3ª.

Gracias
Existe la posibilidad de importarlo sin las 2 primeras lineas (creo que ahí esta el problema)

si lo haces desde la tercera te deberia andar.

proba algo como

Código:
BULK

INSERT TUTABLA
FROM 'C:\TUARCHIVO.txt'--Ruta del archivo
WITH

( FIELDTERMINATOR = '$', --separa campos
  ROWTERMINATOR = '\n' ) --separa filas

GO
Mira sin saber mucho, supongo que el txt debe tener siempre el mismo formato.

SAludos!
  #9 (permalink)  
Antiguo 01/10/2010, 08:07
Avatar de flaviovich  
Fecha de Ingreso: agosto-2005
Ubicación: Lima, Peru
Mensajes: 2.951
Antigüedad: 19 años, 4 meses
Puntos: 39
Respuesta: Socorro!!! Expertos de BULK INSERT ayudarme!!!

Prueba asi:
Código SQL:
Ver original
  1. BULK INSERT TUTABLA
  2. FROM 'C:\TUARCHIVO.txt'--Ruta del archivo
  3. WITH (
  4.   FIELDTERMINATOR = '$', --separa campos
  5.   ROWTERMINATOR = '\n', --separa filas
  6.   FIRSTROW = 3
  7. )
__________________
No repitamos temas, usemos el Motor de busquedas
Plantea bien tu problema: Ayúdanos a ayudarte.
  #10 (permalink)  
Antiguo 01/10/2010, 08:27
Avatar de gustavoh10  
Fecha de Ingreso: diciembre-2005
Ubicación: ARGENTINA
Mensajes: 196
Antigüedad: 19 años
Puntos: 3
Respuesta: Socorro!!! Expertos de BULK INSERT ayudarme!!!

Cita:
Iniciado por flaviovich Ver Mensaje
Prueba asi:
Código SQL:
Ver original
  1. BULK INSERT TUTABLA
  2. FROM 'C:\TUARCHIVO.txt'--Ruta del archivo
  3. WITH (
  4.   FIELDTERMINATOR = '$', --separa campos
  5.   ROWTERMINATOR = '\n', --separa filas
  6.   FIRSTROW = 3
  7. )
jajaja no sabia lo de firstrow
por no leer la documentación.

yo creo que así debería andar!!
  #11 (permalink)  
Antiguo 04/10/2010, 01:36
 
Fecha de Ingreso: junio-2010
Mensajes: 134
Antigüedad: 14 años, 5 meses
Puntos: 0
Respuesta: Socorro!!! Expertos de BULK INSERT ayudarme!!!

Actualmente tengo los siguientes datos o estructuras:

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 "%" 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 = '%,FIELDTERMINATOR ='$',FORMATFILE = 'C:\fich.txt', FIRSTROW = 2)

Y sigue sin funcionar. Le llevo dando la de dios de vueltas y nada de nada. Este es el fallo que me dá:
Mens. 4832, Nivel 16, Estado 1, Línea 1
Carga masiva: fin de archivo inesperado en el archivo de datos.
Mens. 7301, Nivel 16, Estado 2, Línea 1
No se puede obtener ("IID_IColumnsInfo") del proveedor OLE DB "BULK" para el servidor vinculado "(null)".

Última edición por dikcc; 04/10/2010 a las 01:53
  #12 (permalink)  
Antiguo 04/10/2010, 03:20
 
Fecha de Ingreso: junio-2010
Mensajes: 134
Antigüedad: 14 años, 5 meses
Puntos: 0
Respuesta: Socorro!!! Expertos de BULK INSERT ayudarme!!!

He visto que esto se puede llegar a usar, pero tampoco me funciona, me dice que tengo que especificar fin de linea o fin de campo:

SELECT a.* FROM OPENROWSET( BULK 'C:\201008.txt', FORMATFILE = 'C:\fich3.txt', FIRSTROW = 2) AS a
  #13 (permalink)  
Antiguo 04/10/2010, 04:21
Avatar de gustavoh10  
Fecha de Ingreso: diciembre-2005
Ubicación: ARGENTINA
Mensajes: 196
Antigüedad: 19 años
Puntos: 3
Respuesta: Socorro!!! Expertos de BULK INSERT ayudarme!!!

Cita:
Iniciado por flaviovich Ver Mensaje
Prueba asi:
Código SQL:
Ver original
  1. BULK INSERT TUTABLA
  2. FROM 'C:\TUARCHIVO.txt'--Ruta del archivo
  3. WITH (
  4.   FIELDTERMINATOR = '$', --separa campos
  5.   ROWTERMINATOR = '\n', --separa filas
  6.   FIRSTROW = 3
  7. )
Lo probaste de esta forma?
  #14 (permalink)  
Antiguo 04/10/2010, 04:33
 
Fecha de Ingreso: junio-2010
Mensajes: 134
Antigüedad: 14 años, 5 meses
Puntos: 0
Respuesta: Socorro!!! Expertos de BULK INSERT ayudarme!!!

Cita:
Iniciado por gustavoh10 Ver Mensaje
Lo probaste de esta forma?
Si ejecuto eso me da este error:

Mens. 4864, Nivel 16, Estado 1, Línea 2
Error de conversión de datos de carga masiva (tipo no coincidente o carácter no válido para la página de códigos especificada) en la fila 3, columna 1 (id).
Mens. 4864, Nivel 16, Estado 1, Línea 2
Error de conversión de datos de carga masiva (tipo no coincidente o carácter no válido para la página de códigos especificada) en la fila 4, columna 1 (id).
Mens. 4864, Nivel 16, Estado 1, Línea 2
Error de conversión de datos de carga masiva (tipo no coincidente o carácter no válido para la página de códigos especificada) en la fila 5, columna 1 (id).
Mens. 4832, Nivel 16, Estado 1, Línea 2
Carga masiva: fin de archivo inesperado en el archivo de datos.
Mens. 7399, Nivel 16, Estado 1, Línea 2
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 2
No se puede capturar una fila del proveedor OLE DB "BULK" para el servidor vinculado "(null)".
  #15 (permalink)  
Antiguo 04/10/2010, 05:12
 
Fecha de Ingreso: junio-2010
Mensajes: 134
Antigüedad: 14 años, 5 meses
Puntos: 0
Respuesta: Socorro!!! Expertos de BULK INSERT ayudarme!!!

Que decir tiene que si hay sabe como realizar inserciones masivas desde SQL Server 2008 mediante un procedimiento almacenado que me lo haga saber.
Gracias
  #16 (permalink)  
Antiguo 04/10/2010, 05:24
Avatar de gustavoh10  
Fecha de Ingreso: diciembre-2005
Ubicación: ARGENTINA
Mensajes: 196
Antigüedad: 19 años
Puntos: 3
Respuesta: Socorro!!! Expertos de BULK INSERT ayudarme!!!

Cita:
Iniciado por dikcc Ver Mensaje
Que decir tiene que si hay sabe como realizar inserciones masivas desde SQL Server 2008 mediante un procedimiento almacenado que me lo haga saber.
Gracias

tu problema esta en la forma en que tenes tu archivo de texto

Cita:

1$20100904%
Nombre$Apellido$Direccion$Num Telefono%
Antonio$Hernandez$Avenida Sin Nombre$911231231%
Antonioa$Hernandeza$Avenida Sin Nombre2$911231232%
Perdón por ser tan insistente, pero no entinedo como esta estrucurado tu archivo

el ejemplo que te puse es para una situación del tipo

tu archivo de texto con una estructura asi
ID$NOMBRE$APELLIDO$DIRECCION$NUMTELEFONO

los datos del archivo deberian venir asi
Cita:
1$Juan$Perez$calle falsa 123$12345%
2$Pedro$Lopez$calle falsa 144$12345%
entonces tenes el símbolo $ para dividir los campos y el símbolo % para dividir las filas

saludos!
  #17 (permalink)  
Antiguo 04/10/2010, 06:27
 
Fecha de Ingreso: junio-2010
Mensajes: 134
Antigüedad: 14 años, 5 meses
Puntos: 0
Respuesta: Socorro!!! Expertos de BULK INSERT ayudarme!!!

Cita:
Iniciado por gustavoh10 Ver Mensaje
tu problema esta en la forma en que tenes tu archivo de texto



Perdón por ser tan insistente, pero no entinedo como esta estrucurado tu archivo

el ejemplo que te puse es para una situación del tipo

tu archivo de texto con una estructura asi
ID$NOMBRE$APELLIDO$DIRECCION$NUMTELEFONO

los datos del archivo deberian venir asi


entonces tenes el símbolo $ para dividir los campos y el símbolo % para dividir las filas

saludos!

Ahora el que no entiende soy yo jaja

Vamos a ver, en mi archivo, en la primera linea, el primer campo es un identificador del archivo y despues viene la fecha de creación; la segunda linea son las cabeceras de las columnas; y todas las líneas posteriores son los datos que quiero insertar en la tabla. Con el parametro "FIRSTROW = 3" me salto las 2 primeras filas las cuales no necesito para la inserción de datos. Creo que lo tengo como dices tu ¿no?
  #18 (permalink)  
Antiguo 04/10/2010, 12:49
Avatar de gustavoh10  
Fecha de Ingreso: diciembre-2005
Ubicación: ARGENTINA
Mensajes: 196
Antigüedad: 19 años
Puntos: 3
Respuesta: Socorro!!! Expertos de BULK INSERT ayudarme!!!

Cita:
Iniciado por dikcc Ver Mensaje
Ahora el que no entiende soy yo jaja

Vamos a ver, en mi archivo, en la primera linea, el primer campo es un identificador del archivo y despues viene la fecha de creación; la segunda linea son las cabeceras de las columnas; y todas las líneas posteriores son los datos que quiero insertar en la tabla. Con el parametro "FIRSTROW = 3" me salto las 2 primeras filas las cuales no necesito para la inserción de datos. Creo que lo tengo como dices tu ¿no?
exactamente!! no te funcionó asi??

si no te funciono, a la noche cuando llego a mi casa hago un caso de prueba y te comneto los resultados.

saludos!
  #19 (permalink)  
Antiguo 04/10/2010, 17:02
Avatar de gustavoh10  
Fecha de Ingreso: diciembre-2005
Ubicación: ARGENTINA
Mensajes: 196
Antigüedad: 19 años
Puntos: 3
Respuesta: Socorro!!! Expertos de BULK INSERT ayudarme!!!

Cita:
Iniciado por gustavoh10 Ver Mensaje
exactamente!! no te funcionó asi??

si no te funciono, a la noche cuando llego a mi casa hago un caso de prueba y te comneto los resultados.

saludos!
Hice un caso de ejemplo con los datos que me pasaste y me funcionó perfecto.

No se como manejas el tema del ID, (si usas un identity)

Espero que puedas solucionarlo.
  #20 (permalink)  
Antiguo 05/10/2010, 00:32
 
Fecha de Ingreso: junio-2010
Mensajes: 134
Antigüedad: 14 años, 5 meses
Puntos: 0
Respuesta: Socorro!!! Expertos de BULK INSERT ayudarme!!!

Cita:
Iniciado por gustavoh10 Ver Mensaje
Hice un caso de ejemplo con los datos que me pasaste y me funcionó perfecto.

No se como manejas el tema del ID, (si usas un identity)

Espero que puedas solucionarlo.
¿Utilizaste exactamente todas las cosas que te puse?
¿El tipo de base de datos, el procedimiento almacenado, el fichero de formato, etc...?
Me acabas de dejar loco...
Cuando puedas redactame exactamente como lo realizas para realizar yo la misma prueba.

Un saludo y gracias
  #21 (permalink)  
Antiguo 05/10/2010, 02:10
 
Fecha de Ingreso: junio-2010
Mensajes: 134
Antigüedad: 14 años, 5 meses
Puntos: 0
Respuesta: Socorro!!! Expertos de BULK INSERT ayudarme!!!

Por favor dime si lo has hecho exactamente igual que lo tenía yo al principio del post o si has modificado algo, por que no dejo de probarlo y me dice el fallo al final de línea.

Gracias
  #22 (permalink)  
Antiguo 05/10/2010, 03:22
Avatar de gustavoh10  
Fecha de Ingreso: diciembre-2005
Ubicación: ARGENTINA
Mensajes: 196
Antigüedad: 19 años
Puntos: 3
Respuesta: Socorro!!! Expertos de BULK INSERT ayudarme!!!

Cita:
Iniciado por dikcc Ver Mensaje
Por favor dime si lo has hecho exactamente igual que lo tenía yo al principio del post o si has modificado algo, por que no dejo de probarlo y me dice el fallo al final de línea.

Gracias
lo hice con los datos que me pasaste-

la diferencia es que puse
ID int identity
todos los otros campos nvarchar(50)
num telefono lo puse como telefono sin espacios

el txt que use es este

Cita:
test%
1$20100904%
1$Antonio$Hernandez$Avenida Sin Nombre$911231231%
2$Antonioa$Hernandeza$Avenida Sin Nombre2$911231232%
3$Antonioa$Hernandeza$Avenida Sin Nombre2$911231232%
y el sql es el que te pase reemplazando \n por % como finalizador de linea.

Lo que si le saque el último enter al archivo para que este finalice en la última línea y no quede un línea en blanco

si queres que te pase mi sql de la creación de la tabla y el código que use para levantar el archivo avisame, pero lo saqué de este post

Saludos!
  #23 (permalink)  
Antiguo 05/10/2010, 04:09
 
Fecha de Ingreso: junio-2010
Mensajes: 134
Antigüedad: 14 años, 5 meses
Puntos: 0
Respuesta: Socorro!!! Expertos de BULK INSERT ayudarme!!!

Lo cierto es que llevo mil modificaciones y ya no se con que fichero comencé.
Te agradecería muchísimo que me enviaras el TXT de los datos, el FMT, la tabla y el BULK, vamos, todo jeje.

Muchas gracias por tu ayuda
  #24 (permalink)  
Antiguo 05/10/2010, 04:39
Avatar de gustavoh10  
Fecha de Ingreso: diciembre-2005
Ubicación: ARGENTINA
Mensajes: 196
Antigüedad: 19 años
Puntos: 3
Respuesta: Socorro!!! Expertos de BULK INSERT ayudarme!!!

Cita:
Iniciado por dikcc Ver Mensaje
Lo cierto es que llevo mil modificaciones y ya no se con que fichero comencé.
Te agradecería muchísimo que me enviaras el TXT de los datos, el FMT, la tabla y el BULK, vamos, todo jeje.

Muchas gracias por tu ayuda
bueno, ni bien puedo te lo paso, pero yo no use FMT, de hecho no tengo ni idea de que es.
solo use un txt y la consulta con el BULK insert.
Saludos!
  #25 (permalink)  
Antiguo 05/10/2010, 04:48
 
Fecha de Ingreso: junio-2010
Mensajes: 134
Antigüedad: 14 años, 5 meses
Puntos: 0
Respuesta: Socorro!!! Expertos de BULK INSERT ayudarme!!!

Si puedes hacer el favor intenta insertar también un campo DATETIME que en el TXT tenga este formato:
30/1/2009 (30 el dia, 1 el mes y 2009 el año)

Gracias
  #26 (permalink)  
Antiguo 05/10/2010, 04:49
 
Fecha de Ingreso: junio-2010
Mensajes: 134
Antigüedad: 14 años, 5 meses
Puntos: 0
Respuesta: Socorro!!! Expertos de BULK INSERT ayudarme!!!

Cita:
Iniciado por gustavoh10 Ver Mensaje
bueno, ni bien puedo te lo paso, pero yo no use FMT, de hecho no tengo ni idea de que es.
solo use un txt y la consulta con el BULK insert.
Saludos!
El fmt lo llamo al fichero que da el formato de la tabla para la inserción de los datos, y el txt el formato con los datos que quiero introducir ;)
  #27 (permalink)  
Antiguo 05/10/2010, 05:51
Avatar de gustavoh10  
Fecha de Ingreso: diciembre-2005
Ubicación: ARGENTINA
Mensajes: 196
Antigüedad: 19 años
Puntos: 3
Respuesta: Socorro!!! Expertos de BULK INSERT ayudarme!!!

Cita:
Iniciado por dikcc Ver Mensaje
El fmt lo llamo al fichero que da el formato de la tabla para la inserción de los datos, y el txt el formato con los datos que quiero introducir ;)
archivo que use
Cita:

test%
1$20100904%
1$Antonio$Hernandez$Avenida Sin Nombre$911231231%
2$Antonioa$Hernandeza$Avenida Sin Nombre2$911231232%
3$Antonioa$Hernandeza$Avenida Sin Nombre2$911231232%
Sql que use
Cita:

BULK INSERT TUTABLA
FROM 'C:\TUARCHIVO.txt'--Ruta del archivo
WITH (
FIELDTERMINATOR = '$', --separa campos
ROWTERMINATOR = '%', --separa filas
FIRSTROW = 3 --Desde donde comienzo
)
Como te dije antes, todos los campos en nvarchar,
asi me funcionó a mi.

Saludos!
  #28 (permalink)  
Antiguo 05/10/2010, 06:34
 
Fecha de Ingreso: junio-2010
Mensajes: 134
Antigüedad: 14 años, 5 meses
Puntos: 0
Respuesta: Socorro!!! Expertos de BULK INSERT ayudarme!!!

Oks, parece que si funciona, pero necesito insertar campos que sean INT y DATETIME, hay es donde se generan mis grandes dudas. Si logras averiguar algo, me dices, por que yo estoy perdidisimo.

Un saludo
  #29 (permalink)  
Antiguo 05/10/2010, 06:46
Avatar de gustavoh10  
Fecha de Ingreso: diciembre-2005
Ubicación: ARGENTINA
Mensajes: 196
Antigüedad: 19 años
Puntos: 3
Respuesta: Socorro!!! Expertos de BULK INSERT ayudarme!!!

Cita:
Iniciado por dikcc Ver Mensaje
Oks, parece que si funciona, pero necesito insertar campos que sean INT y DATETIME, hay es donde se generan mis grandes dudas. Si logras averiguar algo, me dices, por que yo estoy perdidisimo.

Un saludo
Amigo, podrías proporcionar un archivo con el formato exacto que queres incorporar, así es mas fácil para mi y otros que quieras ayudarte hacer pruebas.
Supongo que con los datetime podrías tener problemas con el formato de la fecha, pero eso se soluciona de alguna manera.

Me alegro que te haya funcionado, saludos!
  #30 (permalink)  
Antiguo 06/10/2010, 02:29
 
Fecha de Ingreso: junio-2010
Mensajes: 134
Antigüedad: 14 años, 5 meses
Puntos: 0
Respuesta: Socorro!!! Expertos de BULK INSERT ayudarme!!!

Cita:
Iniciado por gustavoh10 Ver Mensaje
Amigo, podrías proporcionar un archivo con el formato exacto que queres incorporar, así es mas fácil para mi y otros que quieras ayudarte hacer pruebas.
Supongo que con los datetime podrías tener problemas con el formato de la fecha, pero eso se soluciona de alguna manera.

Me alegro que te haya funcionado, saludos!
Parece que actualmente la única persona que quiere ayudarme eres tu.

El formato de texto a introducir sería el siguiente:

1$20091209%
Nombre$Apellidos$Teléfono$FechaNacimiento%
Antonio$Garcia$655655655$12/12/1980%
Antonio$Gonzales$616616616$12/02/1981%

El teléfono como INT y la fecha como DATETIME.

Thanks

Etiquetas: bulk, 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

SíEste tema le ha gustado a 3 personas




La zona horaria es GMT -6. Ahora son las 21:17.