folgende Fehlermeldung ORA-01722: Ungültige Zahl
Ein deutsches System? (Wegen deutscher Fehlermeldung)
Vielleicht sind die numeric separators irgendwie geändert worden, spätestens innerhalb der Session.
(Entscheidend ist, was in der Session aktiv ist, wo es her kommt, wäre eine andere Frage)
Du kannst es abfragen:
Code:
select * from nls_session_parameters
where parameter='NLS_NUMERIC_CHARACTERS';
Damit Deine abfrage funktioniert, müssten Numeric Characters auf
stehen.
Falls sie das nicht tun, kannst Du es (innerhalb der session) ändern
Code:
alter session set NLS_NUMERIC_CHARACTERS= '.,';
Danach müsste cast auf '0.0' funktionieren, sofern genau diese Einstellung das Problem war (und es ein reines '0.0' an Cast übergeben wird).
Wenn Dir nicht klar ist, was das alles ist, schau dir die NLS Settings genau an, auch den Unterschied von Session und Database Parameters.
Wenn es mit "alter session.." funktioniert, sei Dir bewusst, dass Du damit das Systemverhalten Deiner Sitzung geändert hast. Das ist nur dann unterschiedlich, wenn danach die Sitzung beendet wird oder wenn Du allen Code überprüft und getestet hast, der innerhalb der Sitzung folgt.