Oracle - Insert eines floats/doubles geht nicht

y0dA

Erfahrenes Mitglied
Hi!
Code:
CREATE TABLE GPS_TOURS (
       GT_ID NUMBER(25,0) CONSTRAINT pk_gps_tour PRIMARY KEY,
       GT_TOUR_ID NUMBER(25,0),
       GT_TOUR_DESCRIPTION VARCHAR2(50),
       GT_START TIMESTAMP,
       GT_END TIMESTAMP,
       GT_DISTANCE NUMBER(5, 5),
       GT_AVERAGE_SPEED NUMBER(3,5),
       GT_GEOM MDSYS.SDO_GEOMETRY
);

insert into gps_tours (gt_average_speed) values (1.1)

Hierbei bekomme ich folgende Fehlermeldung
Code:
ORA-01438: Wert größer als die angegebene Gesamststellenzahl, die für diese Spalte zulässig ist
 
Hallo,

kann es sein das der Punkt also 1.1 als tausender Trennzeichen
interpretiert wird. Wie sehen deine NLS PARMS aus?

Probier mal 1,1 als gegenprobe.

Ist nur ein spontaner Gedanke.

Gruß
 
Hallo,

ich habe gerade ein bisschen rumprobiert, du solltest auf jeden Fall
überlegen ob Du wirklich mehr Nachkommastellen brauchst als Führende.
Es scheint das die genauigkeit in Abhängigkeit der Fuehrenden Ziffern steht.
3,5 -> value to large
8,5 -> alles o.k.

Ich würde einfach die definition für die Spalte anpassen:
PHP:
ALTER  TABLE HGPS_TOURS MODIFY  GT_AVERAGE_SPEED NUMBER (8,5)

grüße
 
Zurück