none
LLENAR TABLA DESDE UN ARCHIVO DE TEXTO RRS feed

  • Pregunta

  • ESTOY TRATANDO DE LLENAR UNA TABLA DE MI BASE DE DATOS SQL SERVER 2008, Y ESTOY USANDO EL COMANDO BULK:

    BULK
    INSERT TABLA
    FROM 'D:\xxxx\xxxx.txt'--Ruta archivo
    WITH
    ( FIELDTERMINATOR = '|', --separa campos
      ROWTERMINATOR = '\n' ); --separa filas
    GO

    ME MANDA EL ERROR DE QUE EL ARCHIVO ES MUY GRANDE, EL ARCHIVO DE TEXTO PESA 2GB MAS O MENOS, YA LO DEPURE LO MAS QUE SE PUEDE.

    CON LA OPCION DE IMPORTAR DATOS LO HAGO SIN BRONCA, EL PROBLEMA ES QUE LO QUIERO AUTOMATIZAR Y LA OPCION DE IMPORTAR NO LO DEJA AUTOMATICAMENTE.

    HAY OTRA ALTERNATIVA U OTRO COMANDO QUE ME DEJE LLENAR LA TABLA O ME FALTA ALGO EN LA INSTRUCCION??

    O

    LA OPCION DE IMPORTAR COMO LA PUEDO AUTOMATIZAR?

    DE ANTEMANO , MUCHAS GRACIAS.

    lunes, 25 de mayo de 2015 19:31

Todas las respuestas

  • Hola:

    No le veo ningún inconveniente a tu código, el problema tal vez sea , como tu bien mencionas, el tamaño del archivo, de manera particular nunca he cargado archivos tan pesados. Pudieras intentar cargar el archivo con SSIS: SQL SERVER INTEGRATION SERVICES, hacer un paquete dtsx y programarlo con SQL SERVER AGENT.

    SALUDOS!


    SERGIO SANCHEZ ARIAS
    facebook twitter blogger google

    lunes, 25 de mayo de 2015 21:47
  • DEJA PROBAR Y TE COMENTO COMO ME FUE, NO ESTOY MUY FAMILIARIZADO CON ESO, ASI Q INVESTIGARE UN POCO.

    GRACIAS.

    miércoles, 27 de mayo de 2015 16:12
  • hehuro,

    Como estas? que error te da el bulk insert?? yo mis cargas las hago con BCP (se pueden automatizar creando un .bat que ejecute la sentencia y scheduleandolo con el scheduler de windows) te adjunto la documentacion.

    https://msdn.microsoft.com/es-es/library/ms162802.aspx

    espero te sirva!

    saludos!

    miércoles, 27 de mayo de 2015 17:10
  • QUE TAL!!

    ESTE ES EL ERROR QUE ME MANDA USANDO EL BULK:

    Msg 4866, Level 16, State 1, Line 1
    Error de carga masiva. Columna demasiado larga en el archivo de datos para la fila 1, columna 6. Compruebe que especificó correctamente los valores para el terminador de campo y el terminador de fila.
    Msg 7399, Level 16, State 1, Line 1
    El proveedor OLE DB "BULK" del servidor vinculado "(null)" informó de un error. El proveedor no proporcionó información acerca del error.
    Msg 7330, Level 16, State 2, Line 1
    No se puede capturar una fila del proveedor OLE DB "BULK" para el servidor vinculado "(null)".

    GRACIAS POR CONTESTAR!!!

    VOY A REVISAR EL LINK QUE ME PASASTE POR QUE EL SSIS ME MANDO UN ERROR PARECIDO:

    Error: 0xC0202071 con carga TABLA, SQL Server Destino [9]: No se puede preparar la inserción masiva de SSIS para la inserción de datos.
    Error: 0xC004701A con carga TABLA, SSIS.Pipeline: componente "Destino de SQL Server" (9) no pasó la fase de pre-ejecución y se devuelve el código de error 0xC0202071.


    miércoles, 27 de mayo de 2015 19:13
  • Hehuro,

    el error que estas teniendo no es de tamaño de archivo sino que la columna 6 del archivo txt supera el tamaño de la columna definida en la base 

    ejemplo columna 6 en el archivo txt abcde

    columna 6 definida en la base varchar(2)

    o el delimitador que le estas poniendo a la sentencia no coincide con el del archivo.

    Ademas si queres probar bcp y poner la base en bulk logged en performance hacelo xq a mi me dio mejor resultado.

    espero te sirva!

    saludos!


    • Editado Gonzalo Bissio miércoles, 27 de mayo de 2015 19:29
    • Propuesto como respuesta Enrique AA jueves, 28 de mayo de 2015 18:39
    miércoles, 27 de mayo de 2015 19:25
  • PUES YA QUEDO, MUCHAS GRACIAS A TODOS POR SUS COMENTARIO, ME AYUDARON A RESOLVER ESTE PROBLEMA.

    LA SOLUCION FUE ASI

    1- A LA TABLA DESTINO LE TUVE QUE MODIFICAR LOS CAMPOS A VARCHAR Y DEJARLOS CON UNA LONGITUD DE 20 (NO SE POR QUE ME MARCABA EL ERROR DE QUE LOS CAMPOS NO CORRESPONDIAN, SI TODOS SON DE 12)

    2- HICE UN PAQUETE SSIS: SQL SERVER INTEGRATION SERVICES, DEJO EL LINK DEL VIDEO..  https://vimeo.com/11690495

    3- Y PARA FINALIZAR, LO AUTOMATICE SIGUIENDO ESTE OTRO VIDEO.  

    https://technet.microsoft.com/es-es/library/dd440761%28v=sql.100%29.aspx?f=255&MSPPError=-2147217396

    Y ASI RESOLVI MI PROBLEMA, GRACIAS Y ESPERO LE AYUDE AOTRA PERSONA A RESOLVER U PROBLEMA SIMILAR.

    jueves, 28 de mayo de 2015 17:46