Copiar txt a sql server

Tengo la sig tabla archivo compuesta x 3 campos
cod  int
nombre  varchar
cant  int
tengo un txt de la siguiente forma
32 ¬ xxxxxxxx ¬ 1 /n
21 ¬ hhhhhhhh ¬ 1 /n
Como puedo hacer para copiar este txt a mi tabla.
Probe con un bulk insert y me sale el sig error
"insercion masiva: fin inesperado del archivo de datos (eof)

3 Respuestas

Respuesta
1
Lo que se me ocurre que puedes hacer es:
* Hacer un split de cada registro por el caracter que indicas (¬), es decir, separar el contenido de cada registro en un array, donde cada posición del array es uno de los campos, y así hasta que llegues al final del fichero (EOF == true)
- Cargas el fichero en memoria
- Lo conviertes a un array de bytes.
- Cada posición de ese array va a ser un registro de tu fichero
- Haces un split por ese carácter, y el array que esta operación te devuelve lo guardas en un nuevo array auxiliar.
- Repites la misma operación hasta llegar al final del fichero.
Respuesta
1
El bulkInsert exige que la estructura del archivos ea igual a la de la tabla, también es posible que tengas un carácter especial que SQL no entiende.
La otra solución es leer el archivo linea a linea y hacer las inserciones una a una a la tabla.
Podrías darme un ejemplo. Soy nuevo en este tema y estoy juntando imformaacion para ver que sale jajaja.
Por el momento nada
tambien me dijieron q lo puedo hacer con bcp pero ni idea
Gracias
Respuesta
1
El problema debe ser que tienes un carry return y line feed al final del archivo. Revísalo con un editor HEX o te colocas al final de la ultima linea y le presionas backspace...
Podrías darme un ejemplo de como hacerlo. Soy nuevo en esto y no entiendo mucho
Gracias
Lo que debes hacer es bajar un editor hexadecimal y llegar al final del documento. Allí debes buscar un carácter en hexa 0A0D, ese debes eliminarlo. Otra cosa que puedes hacer es abrir el documento con el notepad bajar a la ultima linea ultima columna, presionar backspace hasta borrar el ultimo registro de la columna. Cuando lo elimines presiona undo y presionas enter. Allí cuando este al principio de linea en blanco, salva el archivo y debería servirte.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas