Estoy intentando hacer una importancion masiva a una tabla de SQL Server 2005 pero el problema que tengo es que el archivo de datos no tiene un numero fijo de columnas por lo que esto me esta complicando muchisimo las cosas, esta son algunas filas que contine mi archivo de texto:
BSN*14*MAEU582066451*20111019*0319*0003~
HL*1**S~
TD5**2*MAEU*TA*MAERSK LINE AS**OR*57017~
TD5****TA***94*57017~
Como podran ver son muy diferente una de otra ya lo e intentado de distintas maneras y encontre una que mencionan que para importar informacion se tiene que crear un archivo en formato .fmt con el formato con el cual se va importar la informacion de cada columna pero aun asi me sigue marcando un error
El archivo fmt es el siguiente:
Cita:
Y el error que me marca al ejecutar la consulta es:9.0
8
1 SQLCHAR 0 35 "*" 1 field01 ""
2 SQLCHAR 0 35 "*" 2 field02 ""
3 SQLCHAR 0 35 "*" 3 field03 ""
4 SQLCHAR 0 35 "*" 4 field04 ""
5 SQLCHAR 0 35 "*" 5 field05 ""
6 SQLCHAR 0 35 "*" 6 field06 ""
7 SQLCHAR 0 35 "*" 7 field07 ""
8 SQLCHAR 0 35 "*" 8 field08 ""
9 SQLCHAR 0 35 "*" 9 field09 ""
10 SQLCHAR 0 35 "*" 10 field10 ""
11 SQLCHAR 0 35 "*" 11 field11 ""
12 SQLCHAR 0 35 "*" 12 field12 ""
13 SQLCHAR 0 35 "*" 13 field13 ""
14 SQLCHAR 0 35 "*" 14 field14 ""
15 SQLCHAR 0 35 "\r\n" 15 field15 ""
8
1 SQLCHAR 0 35 "*" 1 field01 ""
2 SQLCHAR 0 35 "*" 2 field02 ""
3 SQLCHAR 0 35 "*" 3 field03 ""
4 SQLCHAR 0 35 "*" 4 field04 ""
5 SQLCHAR 0 35 "*" 5 field05 ""
6 SQLCHAR 0 35 "*" 6 field06 ""
7 SQLCHAR 0 35 "*" 7 field07 ""
8 SQLCHAR 0 35 "*" 8 field08 ""
9 SQLCHAR 0 35 "*" 9 field09 ""
10 SQLCHAR 0 35 "*" 10 field10 ""
11 SQLCHAR 0 35 "*" 11 field11 ""
12 SQLCHAR 0 35 "*" 12 field12 ""
13 SQLCHAR 0 35 "*" 13 field13 ""
14 SQLCHAR 0 35 "*" 14 field14 ""
15 SQLCHAR 0 35 "\r\n" 15 field15 ""
Cita:
y inclusive encontre una opcion que agregar a la sentencia y te genera un archivo TXT con los errores que marca al ejecutar tu codigo:Servidor: mensaje 4863, nivel 16, estado 1, línea 1
Bulk load data conversion error (truncation) for row 21, column 4 (field04).
Servidor: mensaje 4863, nivel 16, estado 1, línea 1
Bulk load data conversion error (truncation) for row 31, column 6 (field06).
Servidor: mensaje 4863, nivel 16, estado 1, línea 1
Bulk load data conversion error (truncation) for row 40, column 1 (field01).
Servidor: mensaje 4863, nivel 16, estado 1, línea 1
Bulk load data conversion error (truncation) for row 480, column 8 (field08).
Servidor: mensaje 4863, nivel 16, estado 1, línea 1
Bulk load data conversion error (truncation) for row 1002, column 7 (field07).
Servidor: mensaje 4863, nivel 16, estado 1, línea 1
Bulk load data conversion error (truncation) for row 1011, column 2 (field02).
Servidor: mensaje 4863, nivel 16, estado 1, línea 1
Bulk load data conversion error (truncation) for row 1342, column 7 (field07).
Servidor: mensaje 4863, nivel 16, estado 1, línea 1
Bulk load data conversion error (truncation) for row 1353, column 3 (field03).
Servidor: mensaje 4863, nivel 16, estado 1, línea 1
Bulk load data conversion error (truncation) for row 1361, column 6 (field06).
Servidor: mensaje 4863, nivel 16, estado 1, línea 1
Bulk load data conversion error (truncation) for row 1543, column 2 (field02).
Servidor: mensaje 4863, nivel 16, estado 1, línea 1
Bulk load data conversion error (truncation) for row 1548, column 1 (field01).
Servidor: mensaje 4865, nivel 16, estado 1, línea 1
Cannot bulk load because the maximum number of errors (10) was exceeded.
Servidor: mensaje 7399, nivel 16, estado 1, línea 1
The OLE DB provider "BULK" for linked server "(null)" reported an error. The provider did not give any information about the error.
Servidor: mensaje 7330, nivel 16, estado 1, línea 1
Cannot fetch a row from OLE DB provider "BULK" for linked server "(null)".
Bulk load data conversion error (truncation) for row 21, column 4 (field04).
Servidor: mensaje 4863, nivel 16, estado 1, línea 1
Bulk load data conversion error (truncation) for row 31, column 6 (field06).
Servidor: mensaje 4863, nivel 16, estado 1, línea 1
Bulk load data conversion error (truncation) for row 40, column 1 (field01).
Servidor: mensaje 4863, nivel 16, estado 1, línea 1
Bulk load data conversion error (truncation) for row 480, column 8 (field08).
Servidor: mensaje 4863, nivel 16, estado 1, línea 1
Bulk load data conversion error (truncation) for row 1002, column 7 (field07).
Servidor: mensaje 4863, nivel 16, estado 1, línea 1
Bulk load data conversion error (truncation) for row 1011, column 2 (field02).
Servidor: mensaje 4863, nivel 16, estado 1, línea 1
Bulk load data conversion error (truncation) for row 1342, column 7 (field07).
Servidor: mensaje 4863, nivel 16, estado 1, línea 1
Bulk load data conversion error (truncation) for row 1353, column 3 (field03).
Servidor: mensaje 4863, nivel 16, estado 1, línea 1
Bulk load data conversion error (truncation) for row 1361, column 6 (field06).
Servidor: mensaje 4863, nivel 16, estado 1, línea 1
Bulk load data conversion error (truncation) for row 1543, column 2 (field02).
Servidor: mensaje 4863, nivel 16, estado 1, línea 1
Bulk load data conversion error (truncation) for row 1548, column 1 (field01).
Servidor: mensaje 4865, nivel 16, estado 1, línea 1
Cannot bulk load because the maximum number of errors (10) was exceeded.
Servidor: mensaje 7399, nivel 16, estado 1, línea 1
The OLE DB provider "BULK" for linked server "(null)" reported an error. The provider did not give any information about the error.
Servidor: mensaje 7330, nivel 16, estado 1, línea 1
Cannot fetch a row from OLE DB provider "BULK" for linked server "(null)".
Cita:
Mi codigo es el siguiente:Row 21 File Offset 850 ErrorFile Offset 0 - HRESULT 0x80004005
Row 31 File Offset 1376 ErrorFile Offset 123 - HRESULT 0x80004005
Row 40 File Offset 1724 ErrorFile Offset 228 - HRESULT 0x80004005
Row 480 File Offset 19348 ErrorFile Offset 342 - HRESULT 0x80004005
Row 1002 File Offset 40833 ErrorFile Offset 438 - HRESULT 0x80004005
Row 1011 File Offset 41205 ErrorFile Offset 564 - HRESULT 0x80004005
Row 1342 File Offset 55162 ErrorFile Offset 702 - HRESULT 0x80004005
Row 1353 File Offset 55689 ErrorFile Offset 780 - HRESULT 0x80004005
Row 1361 File Offset 56009 ErrorFile Offset 889 - HRESULT 0x80004005
Row 1543 File Offset 63768 ErrorFile Offset 1023 - HRESULT 0x80004005
Row 1548 File Offset 64003 ErrorFile Offset 1127 - HRESULT 0x80004005
Row 31 File Offset 1376 ErrorFile Offset 123 - HRESULT 0x80004005
Row 40 File Offset 1724 ErrorFile Offset 228 - HRESULT 0x80004005
Row 480 File Offset 19348 ErrorFile Offset 342 - HRESULT 0x80004005
Row 1002 File Offset 40833 ErrorFile Offset 438 - HRESULT 0x80004005
Row 1011 File Offset 41205 ErrorFile Offset 564 - HRESULT 0x80004005
Row 1342 File Offset 55162 ErrorFile Offset 702 - HRESULT 0x80004005
Row 1353 File Offset 55689 ErrorFile Offset 780 - HRESULT 0x80004005
Row 1361 File Offset 56009 ErrorFile Offset 889 - HRESULT 0x80004005
Row 1543 File Offset 63768 ErrorFile Offset 1023 - HRESULT 0x80004005
Row 1548 File Offset 64003 ErrorFile Offset 1127 - HRESULT 0x80004005
Código:
Espero que alguien pudiera ayudarme a solucionar mi problema de antemano agredezco que se tomen el tiempo de leer mi duda, saludos a todos! BULK INSERT ISA1 FROM '\\192.168.87.9\po\856.txt' WITH ( DATAFILETYPE = 'char', FORMATFILE = '\\192.168.87.9\po\SkipColumn.fmt', KEEPIDENTITY, KEEPNULLS, TABLOCK, ERRORFILE = '\\192.168.87.9\po\errores.txt' )