Ver Mensaje Individual
  #1 (permalink)  
Antiguo 02/05/2009, 10:21
Clode30
 
Fecha de Ingreso: abril-2009
Mensajes: 6
Antigüedad: 15 años, 2 meses
Puntos: 0
Problema con BCP

Hola a todos, tengo el siguiente problema y quisiera ver si alguien me puede dar una mano.

Semanalmente, actualizo una base de datos sql. Lo que hago mediante 2 lineas de codigo en ms-dos, primero vacio la tabla, y luego la subo completa.

La linea de borrado la realizo con :

osql -S xxx.xxx.xxx.xxx -Uxxxx -Pxxxxx -dxxxxx /Q"delete from xxxxxxx"

(esto funciona perfecto)

Y la linea de subida la realizo con:

bcp xxxxxx..xxxxx in G:\xxx\xxx\xxx\xxx.txt -Sxxx.xxx.xxx.xxx -Uxxxxx -Pxxxx -c -t\t -r\n

Cuando ejecuto la segunda linea, comienza a subir los datos de a 1000
Sube los primeros 3000 sin problema, luego sale el siguiente error

S1000 Se encontro un OEF inesperado en archivo BCP.

Para comprobar que es lo que sucede, desde el query analyzer, hago una consulta de todos los datos y lo que encuentro es que no estan bien subidos, o sea, los datos de ciertas columnas aparecen en otras, y se empieza a desfazar todo de lugar y no puedo encontrar donde se empiezan a desfazar ya que me parece que la subida de datos no es ordenada si no aleatoria (en orden digo, orden aleatorio) Y por supuesto aparecen datos de un tipo en columnas de otro tipo.

Lo primero que se puede pensar con esto es que el archivo .txt no esta correcto, pero si desde el sql server 2000, importo los datos a la tabla desde ese mismo archivo .txt los datos se suben perfectamente.
El archivo txt, lo creo guardando una planilla de excel como .txt

Otra cosa extraña es que esto comenzo a suceder no hace mucho, o sea, que hasta que la tabla tenia cerca de 5000 registros no habia problemas.
En esos momentos la tabla tiene cerca de 8000 registros.
Tal vez no sea la cantidad el problema, me refiero a que tal vez entre los 5000 y los 8000 registros hay algo mal en la base, pero no logro encontrar la manera de identificarlo (si es que mi suposicion es cierta)
Estamos hablando de una base de 8000 registros y 62 columnas, con lo que encontrar el dato erroneo (si es que lo hay) se complicaria bastante.

EL motivo por lo cual subo la base de esa manera (mediante lineas de comando en un bat) es porque la persona que actualiza los datos semanalmente no tiene mucho conocimiento de pc y asi se solucionan las cosas.

Bueno, sin mas, a ver si me pueden hechar una mano.


Saludos