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

Problemas File format SQL server 2008

Estas en el tema de Problemas File format SQL server 2008 en el foro de SQL Server en Foros del Web. compañeros ando liado con una importación de csv a sql, les explico lo que he intentado y con suerte alguien pueda echarme una mano verán ...
  #1 (permalink)  
Antiguo 28/09/2011, 18:30
Avatar de ArturoGallegos
Moderador
 
Fecha de Ingreso: febrero-2008
Ubicación: Morelia, México
Mensajes: 6.774
Antigüedad: 16 años, 2 meses
Puntos: 1146
Problemas File format SQL server 2008

compañeros ando liado con una importación de csv a sql, les explico lo que he intentado y con suerte alguien pueda echarme una mano

verán he creado una tabla con la siguiente estructura (los asteriscos dentro de la consulta son para evitar hacer referencia a mi cliente)
Código SQL:
Ver original
  1. [IdRestaurant] [INT] IDENTITY(1,1)  INT NOT NULL PRIMARY KEY IDENTITY(1,1),
  2.     [Categoria] [VARCHAR](50) NOT NULL,
  3.     [TipoComida] [VARCHAR](50) NOT NULL,
  4.     [Zona] [VARCHAR](50) NOT NULL,
  5.     [Nuevo] [VARCHAR](2) NULL,
  6.     [Compania] [VARCHAR](50) NOT NULL,
  7.     [SitioWeb] [VARCHAR](MAX) NULL,
  8.     [TarjetaM***o] [VARCHAR](2) NULL,
  9.     [Direccion] [VARCHAR](50) NULL,
  10.     [CodigoPostal] [VARCHAR](MAX) NULL,
  11.     [Pais] [VARCHAR](50) NOT NULL,
  12.     [Estado] [VARCHAR](50) NOT NULL,
  13.     [MostrarDireccion] [VARCHAR](MAX) NULL,
  14.     [CodAreaTelefono] [VARCHAR](MAX) NULL,
  15.     [Telefono] [VARCHAR](20) NULL,
  16.     [MostrarTelefono] [VARCHAR](MAX) NULL,
  17.     [Imagen] [VARCHAR](MAX) NULL,
  18.     [Inevitable] [VARCHAR](50) NULL,
  19.     [Aprobado] [VARCHAR](2) NOT NULL,
  20.     [Nota] [VARCHAR](400) NULL,
  21.     [Mexicano] [VARCHAR](2) NULL,
  22.     [RUserID] [INT] NULL,

e intento importar un archivo CSV con la siguiente consulta
Código SQL:
Ver original
  1. BULK
  2. INSERT dbo.XmodProRestaurantes
  3. FROM 'c:\x\Restaurantes.txt'
  4. WITH
  5. (
  6. FIELDTERMINATOR = ',',
  7. ROWTERMINATOR = '\n'
  8. )

y como resultado he obtenido muchos errores del tipo
Cita:
Msg 4863, Level 16, State 1, Line 1
Bulk load data conversion error (truncation) for row 17, column 19 (Aprobado).
Msg 4863, Level 16, State 1, Line 1
Bulk load data conversion error (truncation) for row 18, column 19 (Aprobado).
Msg 4863, Level 16, State 1, Line 1
Bulk load data conversion error (truncation) for row 19, column 21 (Mexicano).
como dice error de conversion he supuesto que hay un problema con la codificacion y procedo a crear un archivo de formato


(los asteriscos dentro del código son para evitar hacer referencia a mi cliente)
Código SQL:
Ver original
  1. 10.0
  2. 22
  3. 1   SQLINT  0   4   ","     1   IdRestaurant        SQL_Latin1_General_CP1_CI_AS
  4. 2   SQLCHAR 0   50  ","     2   Categoria           SQL_Latin1_General_CP1_CI_AS
  5. 3   SQLCHAR 0   50  ","     3   TipoComida          SQL_Latin1_General_CP1_CI_AS
  6. 4   SQLCHAR 0   50  ","     4   Zona                SQL_Latin1_General_CP1_CI_AS
  7. 5   SQLCHAR 0   2   ","     5   Nuevo               SQL_Latin1_General_CP1_CI_AS
  8. 6   SQLCHAR 0   50  ","     6   Compania            SQL_Latin1_General_CP1_CI_AS
  9. 7   SQLCHAR 0   400 ","     7   SitioWeb            SQL_Latin1_General_CP1_CI_AS
  10. 8   SQLCHAR 0   2   ","     8   TarjetaM****o  SQL_Latin1_General_CP1_CI_AS
  11. 9   SQLCHAR 0   50  ","     9   Direccion           SQL_Latin1_General_CP1_CI_AS
  12. 10  SQLCHAR 0   400 ","     10  CodigoPostal        SQL_Latin1_General_CP1_CI_AS
  13. 11  SQLCHAR 0   50  ","     11  Pais                SQL_Latin1_General_CP1_CI_AS
  14. 12  SQLCHAR 0   50  ","     12  Estado              SQL_Latin1_General_CP1_CI_AS
  15. 13  SQLCHAR 0   400 ","     13  MostrarDireccion    SQL_Latin1_General_CP1_CI_AS
  16. 14  SQLCHAR 0   400 ","     14  CodAreaTelefono     SQL_Latin1_General_CP1_CI_AS
  17. 15  SQLCHAR 0   20  ","     15  Telefono            SQL_Latin1_General_CP1_CI_AS
  18. 16  SQLCHAR 0   400 ","     16  MostrarTelefono     SQL_Latin1_General_CP1_CI_AS
  19. 17  SQLCHAR 0   400 ","     17  Imagen              SQL_Latin1_General_CP1_CI_AS
  20. 18  SQLCHAR 0   50  ","     18  Inevitable          SQL_Latin1_General_CP1_CI_AS
  21. 19  SQLCHAR 0   2   ","     19  Aprobado            SQL_Latin1_General_CP1_CI_AS
  22. 20  SQLCHAR 0   400 ","     20  Nota                SQL_Latin1_General_CP1_CI_AS
  23. 21  SQLCHAR 0   2   ","     21  Mexicano            SQL_Latin1_General_CP1_CI_AS
  24. 22  SQLINT  0   4   "\n"    22  RUserID             SQL_Latin1_General_CP1_CI_AS

el cual me tira un error de lectura
Cita:
Msg 4862, Level 16, State 1, Line 1
Cannot bulk load because the file "c:\x\format.txt" could not be read. Operating system error code (null).
pero si en lugar de 22 filas le digo que son 21 si lo puede leer
Cita:
10.0
21
1 SQLINT 0 4 ","
para mi desgracia sigo teniendo un error un poco distinto al inicial pero al final es lo mismo
Cita:
Msg 4867, Level 16, State 1, Line 1
Bulk load data conversion error (overflow) for row 2, column 1 (IdRestaurant).
Msg 4867, Level 16, State 1, Line 1
Bulk load data conversion error (overflow) for row 3, column 1 (IdRestaurant).
Msg 4867, Level 16, State 1, Line 1
Bulk load data conversion error (overflow) for row 4, column 1 (IdRestaurant).
no se si yo me estoy cerrando por lo cansado y fastidiado pero no doy con el error pero ya tengo varios días intentando y postergando el asunto así que no quedo otra que preguntar en el foro...

alguien ve algún fallo? que otra cosa puedo intentar?


------------------------------------

por cierto ya intente con

Cita:
BULK
INSERT dbo.XmodProRestaurantes
FROM 'c:\x\Restaurantes.txt'
WITH
(
FIELDTERMINATOR = ',',
ROWTERMINATOR = '\r\n'
)
sin resultados
  #2 (permalink)  
Antiguo 29/09/2011, 07:30
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Problemas File format SQL server 2008

Sip hay algo que puedes hacer checar el renglon 17 en la columna aprobado, tienes un valor que es mas grande de 2 caracteres, revisate eso, y revisa tus valores para las columnas varchar(2), prueba haciendo este campo mas grande :)

Saludos!
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #3 (permalink)  
Antiguo 29/09/2011, 13:59
Avatar de ArturoGallegos
Moderador
 
Fecha de Ingreso: febrero-2008
Ubicación: Morelia, México
Mensajes: 6.774
Antigüedad: 16 años, 2 meses
Puntos: 1146
Respuesta: Problemas File format SQL server 2008

Gracias por responder compañero @Libras,
Ya he repasado repetidamente el archivo CSV en los campos que marca error solo tengo la palabra Si o No según corresponda... y en el campo IdRestaurant tengo un numero...

probé incrementar el tamaño del campo Aprobado a 20 y 50 y continuo con el error hasta que le coloque varchar(max) pero me extraña si son solo dos letras en esos campos... aun así no logre realizar la importación satisfactoriamente por un Error con IdRestaurant.


temporalmente decidí importar con esta consulta, de 200 registros importo 160 los cuales ya he revisado y no nada fuera de lugar
Código SQL:
Ver original
  1. USE m*****o
  2. bulk
  3. INSERT dbo.XmodProRestaurantes
  4. FROM 'c:\dnn\Restaurantes-demo2.txt'
  5. WITH(
  6. ROWS_PER_BATCH = 200
  7. ,FIELDTERMINATOR = ','
  8. ,ROWTERMINATOR = '\n'
  9. ,MAXERRORS = 200
  10. )
  11. GO
en fin seguir buscando y revisando esos registros minusiosamente
  #4 (permalink)  
Antiguo 29/09/2011, 14:33
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Problemas File format SQL server 2008

ya probaste con un archivo de formato en xml en lugar de txt??

Saludos!
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #5 (permalink)  
Antiguo 30/09/2011, 18:29
Avatar de ArturoGallegos
Moderador
 
Fecha de Ingreso: febrero-2008
Ubicación: Morelia, México
Mensajes: 6.774
Antigüedad: 16 años, 2 meses
Puntos: 1146
Respuesta: Problemas File format SQL server 2008

la verdad que nunca he utilizado un archivo xml para esto pero hoy me he dado a la tarea de leer al respecto, espero este fin de semana salga algo...

gracias por tus respuestas
  #6 (permalink)  
Antiguo 02/10/2011, 23:45
Avatar de ArturoGallegos
Moderador
 
Fecha de Ingreso: febrero-2008
Ubicación: Morelia, México
Mensajes: 6.774
Antigüedad: 16 años, 2 meses
Puntos: 1146
Respuesta: Problemas File format SQL server 2008

compañero solo de pasada para darle las gracias por sus respuestas, después de mucho leer y releer el material que encontré en la red... di con la solución.

a decir verdad fue mas el haberme cerrado por la prisa que tenia... el principal problemas era que el archivo a importar era delimitado por comas (,) y jamas considere que dentro de los datos a importar tenia párrafos con comas en su interior... por lo tanto causaban problemas al no estar bien definidas las columnas y diferenciadas con respecto al contenido.

de igual forma me fue de gran ayuda utilizar un archivo XML en lugar de un txt

por si alguien le sirve mi solución fue reemplazar las comas que se encontraban dentro del contenido con | para poder importar sin problemas, una vez importado ejecute una consulta de reemplazo
Código SQL:
Ver original
  1. UPDATE T
  2.        SET T.[Nota] = REPLACE (T.[Nota],'|',',')
  3.        FROM dbo.XmodProRestaurantes T
  4.        WHERE T.[Nota] LIKE ('%|%')

Etiquetas: file, format, server, sql, tabla
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 09:20.