Errores en importacion


(Jose) #1

Hola

Estoy realizando pruebas de importacion de datos y traspaso de datos entre tablas y hay un error que me esta volviendo majara.

En un proceso de lectura de una tabla y de generacion de registros en otra tabla diferente me surge el siguiente problema:

La funcion STRINGSECTION no funciona correctamente cuando el contenido a extraer es NULO, es decir, cuando hay dos separadores unidos sin dato. En estos casos altera la posicion de los datos (al menos eso parece) y extrae los campos alterando el orden.

El resultado es que el proceso funciona correctamente en la mayoria de los registros, pero cuando en una linea, hay una posicion sin contenido, esa linea la extrae mal, alterando el contenido de todos los campos que van detras de ese.

¿Podeis confirmar si es error de la funcion, o error mio, de mala interpretacion? y en cualquier caso, ¿como solucionarlo?

José

 


([N4] fgutierrez.velneo) #2

No hemos detectado ninguna incidencia con la función y la hemos probado tanto con valores como sin ellos. ¿Cómo la usas, con separadores iniciales y finales o sin ellos? ¿Has tenido en cuenta que la posición inicial es 0? ¿Puede ser que el primer campo no tenga valores a veces y no lo hayas tenido en cuenta en la definición de la forma de usar la función?

 

Te agradeceríamos que incluyeras una captura del proceso en el post para poder evaluar cómo la usas, y otra captura con un ejemplo de los datos que importas.

 

Un saludo.


(Jose) #3

Ahora no puedo enviar las imagenes, porque no estoy en la oficina, pero he realizado otras pruebas y he comprobado que la funcion STRINGSECTION no esta funcionando correctamente

En una cadena como esta:

1;dato1;;dato3;dato4;dato5;dato6;

2;dato1;dato2;dato3;dato4;dato5;dato6;

3;dato1;dato2;dato3;dato4;dato5;dato6;

si os fijais en la linea 1, falta el DATO2, y segun este ejemplo, la importacion funciona correctamente para las lineas 2 y 3, pero en la linea 1 se posiciona incorrectamente a partir del 2 dato al ser NULO

1;dato1;0;dato3;dato4;dato5;dato6;

2;dato1;dato2;dato3;dato4;dato5;dato6;

3;dato1;dato2;dato3;dato4;dato5;dato6;

si en lugar de dejar un campo NULO, pongo un 0 para evitar esto, la importacion funciona perfectamente para las 3 lineas

Deberiais comprobar esto, y si hay alguna forma de evitarlo, para que los valores nulos tambien los tenga en cuenta, decidlo.

José

 


(Jose) #4

En la importacion, me da otro problema, que aunque no tiene importancia me desconcierta un poco

En el proceso de importacion, antes de comenzar la lectura del fichero de texto, me aseguro de eliminar todos los registros de la tabla donde voy a guardar los datos de la improtacion.

En el mismo proceso, se eliminan los registros de la tabla y despues se importa el fichero de texto.

El problema, es que al importar el fichero de texto, la numeracion automatica del margen izquierdo de la rejilla, no se corresponde con el fichero leido.

Me explicare mejor, si el fichero a importar tiene 1000 registros, al borrar los registros y volver a importar deberia volever a comenzar desde el nº 1, pues no, empieza desde el 1001 al 2000, y si repito de nuevo el proceso, empieza del 2001 al 3000.

Pero esto no es lo mas raro de todo, lo peor y lo que mas me desconcierta, es que la linea 1001 se corresponde a la ultima linea del fichero de texto, la 1002 a la penultima linea, como si la importacion del fichero de texto se hubiera realizado en orden inverso.

Sera que necesito unas vacaciones,   ;)

José

 


([N4] fgutierrez.velneo) #5

Por partes:

No hemos podido reproducir el error que comentas, por lo que te solicitamos de nuevo que incluyas una captura del proceso que realizas y una captura del texto que importas. Indícanos por favor los parámetros que usas en la función sectionString().

En cuanto a lo otro que comentas, no te preocupes, la base de datos reaprovecha los huecos de los registros eliminados, en orden inverso al que han sido borrados, es decir, aprovecha antes el último hueco.

Un saludo.