none
Error en Bulk insert - con archivo .csv RRS feed

  • Pregunta

  • Buenas Tardes,

    Estoy haciendo un bulk insert con un archivo .csv, pero el problema es que en mi pc y en el de un usuario se daña el archivo, es decir, en la primera fila aparecen seguidas la segunda y parte de la tercera. Adjunto unas imagenes con un archivo como debe ser y otra con las filas desorganizadas.

    Y por esta razón me sale el error:

    Error de carga masiva. Columna demasiado larga en el archivo de datos para la fila 1, columna 53. Compruebe que especificó correctamente los valores para el terminador de campo y el terminador de fila.

     Como puedo arreglar esto??? como hago para que el archivo me abra bien, ordenado cada fila como debe ser.
    Archivo Bien desde otro PC. las columnas corresponden.

     

    Archivo mal, desde mi pc , todos los datos desorganizados, ninguna columna corresponde al titulo.

     

    Gracias por su atención....

     

     


    AngelaMar ;)
    miércoles, 10 de agosto de 2011 22:31

Respuestas

  • Aunque espero que respondas a Guillermotaylor,

    te paso como hacer BULK INSERT con archivo .csv:

    BULK INSERT OrdersBulk

        FROM 'c:\file.csv'
        WITH
        (
            FIRSTROW = 2,
            MAXERRORS = 0,
            FIELDTERMINATOR = ';',
            ROWTERMINATOR = '\n'
        )

     

    Te dejo un enlace que será de tu interes: http://sqlserver2000.databases.aspfaq.com/how-do-i-load-text-or-csv-file-data-into-sql-server.html

     


     Norman M. Pardell 

    ||Microsoft Certified IT Professional|| Database Administrator. Database Developer. SQL Server 2008


    jueves, 11 de agosto de 2011 6:34
  • Hola.

    Parece claro que el motor no está detectando el salto de línea, algo normal, ya que tú mismo desde tu PC (que será el mismo que el servidor) tampoco lo logras identificar. Me ha ocurrido alguna vez cuando los ficheros no provenían de sistemas operativos Windows.

    Yo probaría a abrir el csv con un editor de texto de los que muestran los caracteres no visibles para asegurar que figuran los saltos de línea. Normalmente, abriendo el fichero y salvándolo es suficiente, pero has de ver que esos saltos de línea existen. Quizá cambiar el método de exportación desde SAP fuera más simple (lo mismo falta el retorno de carro, no sé decirte).

    En cualquier caso, es un problema del fichero separado por comas, no de la sintaxis del comando bulk insert.


    Alberto López Grande
    SQL Server MVP
    Visita mi blog en http://qwalgrande.blogspot.es/ Sígueme en twitter en http://twitter.com/qwalgrande

    jueves, 11 de agosto de 2011 13:58
    Moderador

Todas las respuestas

  • Hola. ¿Cómo estás generando el archivo? ¿El archivo se somete a algún proceso que lo modifique?

    Gracias y saludos,

     

     


    Guillermo Taylor F.

    IT Pro & Xbox gamer

    My blog

    miércoles, 10 de agosto de 2011 23:04
  • Aunque espero que respondas a Guillermotaylor,

    te paso como hacer BULK INSERT con archivo .csv:

    BULK INSERT OrdersBulk

        FROM 'c:\file.csv'
        WITH
        (
            FIRSTROW = 2,
            MAXERRORS = 0,
            FIELDTERMINATOR = ';',
            ROWTERMINATOR = '\n'
        )

     

    Te dejo un enlace que será de tu interes: http://sqlserver2000.databases.aspfaq.com/how-do-i-load-text-or-csv-file-data-into-sql-server.html

     


     Norman M. Pardell 

    ||Microsoft Certified IT Professional|| Database Administrator. Database Developer. SQL Server 2008


    jueves, 11 de agosto de 2011 6:34
  •  

    Hola,

    Ese archivo lo bajan de  SAP y el usuario le adiciona unas columnas, pero ese archivo le funciona a unos usuarios y a otros no. No se, si es configuración del equipo o algo así.

     

    gracias por la atención.


    AngelaMar ;)
    jueves, 11 de agosto de 2011 13:43
  • Hola,

    Estoy  realizando el bulk insert de la siguiente manera como esta en la imagen.

     

    Gracias por tu atención

     

     

     


    AngelaMar ;)
    jueves, 11 de agosto de 2011 13:46
  • Hola.

    Parece claro que el motor no está detectando el salto de línea, algo normal, ya que tú mismo desde tu PC (que será el mismo que el servidor) tampoco lo logras identificar. Me ha ocurrido alguna vez cuando los ficheros no provenían de sistemas operativos Windows.

    Yo probaría a abrir el csv con un editor de texto de los que muestran los caracteres no visibles para asegurar que figuran los saltos de línea. Normalmente, abriendo el fichero y salvándolo es suficiente, pero has de ver que esos saltos de línea existen. Quizá cambiar el método de exportación desde SAP fuera más simple (lo mismo falta el retorno de carro, no sé decirte).

    En cualquier caso, es un problema del fichero separado por comas, no de la sintaxis del comando bulk insert.


    Alberto López Grande
    SQL Server MVP
    Visita mi blog en http://qwalgrande.blogspot.es/ Sígueme en twitter en http://twitter.com/qwalgrande

    jueves, 11 de agosto de 2011 13:58
    Moderador
  • Hola como estas, estuve revisando varias paginas web con el mismo problema que tenias no se si lograste solucionarlo; el problema que tengo es que el archivo lo dejan en un servidor, realice una autromaticacion para descargarlo, luego realice una consulta en el sql 2008 r2, realice el respectivo sp para el bulk, aquí te dicen q lo vuelvas a guardar, eso no es la solución para mi caso, es un proceso que se realiza en la madrugada, es decir no debería intervenir nadie, por algo se lo hizo automático, existe alguna forma o comando mediante el sql que lo vuelva a formatear al archivo, es decir q lo guarde correctamente?

    domingo, 26 de enero de 2014 12:54