Oracle - LOADER de una columna numerica

 
Vista:

LOADER de una columna numerica

Publicado por Daniel E. Perez R. (9 intervenciones) el 30/01/2007 13:13:04
En un shell hago un LOADER pero me da error con una columna, de tipo numérico, de la tabla a la cual estoy cargando me dice literalmente: ORA-01722: número no válido

El número en el archivo plano es: 29000.00

¿Por qué no quiere cargar?¿Que tengo que hacer para que entre en la tabla este número? Trate con el tipo de columna LONG, pero ya lo uso en otra columna que me daba el mismo error y lo solucione con esto, pero solo me acepta una columna de este tipo por tabla.

Esperando vuestra gentil y certera respuesta, se despide,

Daniel
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:LOADER de una columna numerica

Publicado por mad (88 intervenciones) el 03/02/2007 13:10:37
Tienes que sustituir el punto por coma, ya que lo entiende como separador de miles y, por lo tanto, el numero no es correcto. Prueba esto:

select to_number('29000.00','99990D00') from dual
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:LOADER de una columna numerica

Publicado por mad (88 intervenciones) el 03/02/2007 13:12:45
Perdon, se me ha olvidado...
Ahora prueba esto:

select to_number('29000,00','99990D00') from dual

esta si funciona.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:LOADER de una columna numerica

Publicado por Daniel Enrique (9 intervenciones) el 06/02/2007 10:32:38
Buenos días.

Tengo dos tablas, en una sus columnas son de tipo VARCHAR2(10) y en la otra sus columnas son de tipo NUMBER(10,2). En la primera tabla tengo una data numérica pero sin un formato definido, los puntos y las comas se turnan para ser separador de decimales o separador de miles. Con una rutina que convierte un parámetro de tipo carácter que tiene un valor numérico sin formato definido, la convierte el valor en numérico con formato 99,999.99

El problema es que cuando hago un INSERT o un UPDATE en la tabla de tipo numérico (es la segunda tabla) tengo que utilizar la función TO_NUMBER(valor,’999G999D99’) para introducir el valor numérico en esta tabla, pero me introduce los números sin puntos ni comas. Es decir un valor de tipo carácter x con un valor 1,1 lo convierte en 1.1 y cuando lo inserta o actualiza lo convierte en 11, claro 11 no es igual a 1.1 ¿Seria tan amable de decirme como puedo hacer para que la función TO_NUMBER(x,’999G999D99’) en las funciones INSERT o UPDATE introduzca o actualice el valor verdadero?

Esperando vuestra certera respuesta, se despide. Atentamente,

Daniel
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:LOADER de una columna numerica

Publicado por mad (88 intervenciones) el 06/02/2007 12:49:15
He hecho las siguientes pruebas:

UPDATE MI_TABLA
SET IMPORTE = TO_NUMBER('1.1','999G999D99')
WHERE MI_CAMPO = VA_CAMPO;

Esta modificacion te actualiza el importe a '11', pero su cambiamos el punto por la coma:

UPDATE MI_TABLA
SET IMPORTE = TO_NUMBER('1,1','999G999D99')
WHERE MI_CAMPO = VA_CAMPO;

El campo IMPORTE tiene el valor: 1,1.

De todas maneras mira la configuración.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar