Autor Beitrag
whalle
Hält's aus hier
Beiträge: 3



BeitragVerfasst: Fr 12.07.02 06:42 
In der ORACLE-Tabelle ist ein Feld "xxx number(8.1)" definiert.
Im Delphi-Programm wird mittels SQL-Query und Datasource auf die Tabelle
zugegriffen.
Beim Lesen ist alle OK. Beim Schreiben kommt folgender Fehler:

ORA-01722: invalid number
Cause: The attempted conversion of a character string to a number failed because the
character string was not a valid numeric literal. Only numeric fields or character
fields containing numeric data may be used in arithmetic functions or expressions.
Only numeric fields may be added to or subtracted from dates.

Wer kann helfen? Danke
MrSpock
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 262



BeitragVerfasst: Fr 12.07.02 07:25 
Hallo whalle,

wie schreibst du denn den Wert in die Datenbank?

Eine solche Fehlermeldung kann auch dadurch erzeugt werden, dass du den falschen Dezimalseparator benutzt, also z.B. Komma anstatt Punkt.

_________________
Live long and prosper
MrSpock \\//
whalle Threadstarter
Hält's aus hier
Beiträge: 3



BeitragVerfasst: Fr 12.07.02 09:15 
Danke, ich glaube, dass dieses nicht der Fehler sein kann, da ich
-- DecimalSeparator:='.'; --
gesetzt habe.
Der ORACLE-Fehler scheint unabhängig vom Dezimalseparator
zu sein.
Alfons-G
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 307

Win XP Prof, Linux, Win 7
D5 Prof, D7 Architect, D2005 Architect, D2007 Architect
BeitragVerfasst: So 14.07.02 00:42 
Versuch mal, was Oracle macht, wenn Du Deinen SQL-Befehl direkt über SQL+ eingibst, wahlweise mit Punkt und Komma.
So altertümlich SQL+ von der Bedienung her auch ist, zur Fehlersuche in SQL-Befehlen ist es goldig. Wenn ich in einer Query einen Fehler habe, kopiere ich mir das SQl immer in SQL+, wo ich ganau die Stelle, wo der Fehler liegt, angezeigt bekomme.

:idea:

_________________
Alfons Grünewald
whalle Threadstarter
Hält's aus hier
Beiträge: 3



BeitragVerfasst: Mo 15.07.02 10:19 
Danke, ich habe das Problem dadurch gelöst, dass ich eine komplette
SQL-Anweisung bereitstelle und diese mit ExecSql in die Datenbank schreibe