Oracle - Problema con decimales en las WHERE's

 
Vista:

Problema con decimales en las WHERE's

Publicado por ELIA (43 intervenciones) el 24/11/2003 10:21:50
Buenos Días a todos,
Tengo un problema con el tratamiento elementos Numéricos con Decimales.Tengo un bloque de datos cuyo origen es
una Tabla de la base de datos, y uno de esos Elementos es un numérico está definido como number(4,2), en el bloque
se visualiza perfectamente con sus decimales(cuando los tiene). Pero cuando utilizo este elemnto en una select o en
una insert,estas sentencias me fallan si el elemtento tiene decimal, ya q en todos los casos no tiene porq tener decimal.

EJEMPLO:
BLOQUE => SUGERENCIAS
ELEMENTO => ESPESOR , Definido en el bLoque como number, su origen es Base de Datos,que a su vez es un number(4,2).

Si intento hacer una select _ SELECT PROYECTO FROM TABLA WHERE ESPESOR = :SUGERENCIAS.ESPESOR;

Pues si el espesor de sugerencias es entero ( ejemplo 11), no tengo ningún problema, pero si tiene un decimal(ejemplo 11,5),
pues ya no me funciona, y lo mismo me ocurre si lo utilizo en una whrer de una insert, sin embargo este mismo elemnto lo
he dado de alta en una tabla, con sus decimales y no me falla:

insert into sugerencias (proyecto_destino , espesor)
values (:control.proyecto_destino,:Sugerencias.espesor);

Me falla en las WHERE's. Podeis ayudarme?. Muchas gracias.
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:Problema con decimales en las WHERE's

Publicado por rodrigo (75 intervenciones) el 24/11/2003 16:38:05
Prueba cambiando la coma por un punto..

select replace('12,5',',','.') 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:Problema con decimales en las WHERE's

Publicado por Alejandro César (189 intervenciones) el 24/11/2003 20:52:48
La precisión (4,2) significa 2 dígitos enteros y dos dígiros decimales, así que esa columna no almacena numeros mayores a 99.99. Revisa las siguientes propiedades del item:
Datatype=number
Maximum Length=6
Format Mask=99.99

Salu2.
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:Problema con decimales en las WHERE's

Publicado por ELIA (43 intervenciones) el 25/11/2003 08:44:57
Gracias por contestarme,
En primer lugar, no entiendo muy bien a Rodrigo, en donde y en q momento debería cambiar la coma por el punto? Antes de realizar las Sentencias con las WHERE'S??, pero como? debería hacerlo en toda la tabla. He intentado meter en la tabla un espesor con un decimal de punto y no me deja, yo tabajo con la utilidad T.O.A.D. en la tabla aparecen los decimales con punto.

Alejandro, las propiedades las tengo bien, la verdad es q no había puesto formato, pero despues de ponerlo me da lo mismo.

No sé q hacer el tratamiento de decimales, me ha bloqueado en la aplicación, debe de haber una forma de tratar numéricos con decimales, en las where's. Gracias a todos de nuevo.Saludos, Elia
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:Problema con decimales en las WHERE's

Publicado por ELIA (43 intervenciones) el 25/11/2003 10:19:28
Por fín he dado con la solución, lo q he hecho es tratar ese elemento como si fuese alfanumérico y me resuelve bien las select's o las delete con sus Where's

Lo hago así :

Sentencia:='Delete from tabla where espesor = '||''''||:bloque.espesor||'''' ;

En vez de hacerlo como lo hacía antes:
Sentencia:='Delete from tabla where espesor = '||:bloque.espesor;

No sé si es la forma más correcta de solucionarlo, pero me funciona. muchas gracias a todos por vuestra coloboración, y espero q esto tambien os pueda ser de utilidad alguna vez. Saludos














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