Saltar al contenido

¿Determinar ROW que causó el error de “fin de archivo inesperado” en BULK INSERT?

Deseamos darte la mejor respuesta que encontramos en internet. Queremos que te sea de mucha ayuda y si deseas comentarnos algo que nos pueda ayudar a crecer hazlo con libertad.

Solución:

Para ubicar la fila problemática, use el especificador de archivo de error.

BULK INSERT myData
FROM 'C:......myData.csv'
WITH (
FIELDTERMINATOR = ',',
ROWTERMINATOR = 'n',
ERRORFILE = 'C:......myRubbishData.log' 
);

myRubbishData.log tendrá las filas ofensivas y un archivo complementario myRubbishData.log.txt le dará números de fila y compensaciones en el archivo.

Ejemplo de archivo complementario:

Row 3 File Offset 152 ErrorFile Offset 0 - HRESULT 0x80004005
Row 5 File Offset 268 ErrorFile Offset 60 - HRESULT 0x80004005
Row 7 File Offset 384 ErrorFile Offset 120 - HRESULT 0x80004005
Row 10 File Offset 600 ErrorFile Offset 180 - HRESULT 0x80004005
Row 12 File Offset 827 ErrorFile Offset 301 - HRESULT 0x80004005
Row 13 File Offset 942 ErrorFile Offset 416 - HRESULT 0x80004005

Diversión diversión diversión. No he encontrado una buena manera de depurar estos problemas, así que uso la fuerza bruta. Es decir, las opciones FirstRow y LastRow son muy útiles.

Comience con LastRow = 2 y siga intentándolo. Cargue los resultados en una tabla descartable que pueda truncar fácilmente.

Y también debes tener en cuenta que la primera fila también podría estar causándote problemas.

Tengo un archivo csv que importo usando Bulk

BULK INSERT [Dashboard].[dbo].[3G_Volume]
FROM 'C:3G_Volume.csv'
WITH
(
FIRSTROW = 2,
FIELDTERMINATOR = '","',
ROWTERMINATOR = 'n'
)
GO

Por lo general, utilicé este script y no tiene problemas, pero en raras ocasiones.

me encuentro con este error..

“El proveedor OLE DB “BULK” para el servidor vinculado “(null)” informó un error. El proveedor no proporcionó ninguna información sobre el error”.

Por lo general, esto sucede cuando la última fila tiene valores en blanco (null).

Debe vincular su archivo csv en MS access db para verificar los datos. (Si su csv no tiene más de 1.4 millones de filas, puede abrirlo en Excel)

Dado que mis datos son alrededor de 3 millones de filas, necesito usar access db.

Luego verifique el número de la última fila con espacios en blanco y reste el número de null filas a sus filas totales para csv.

si tiene 2 filas en blanco al final y el número total de filas es 30000005, la secuencia de comandos se volverá así …

BULK
INSERT [Dashboard].[dbo].[3G_Volume]
 FROM 'C:3G_Volume.csv'
WITH
(
FIRSTROW = 2,
FIELDTERMINATOR = '","',
ROWTERMINATOR = 'n',
Lastrow = 30000003
)
GO

Saludos… Mhelboy

Ten en cuenta recomendar esta crónica si te valió la pena.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *