Seite 1 von 1

Mit Zahl aus VARCHAR2 Feld rechnen

BeitragVerfasst: Mi 31. Jan 2018, 18:23
von Goldstueck1977
Hallo zusammen,

ich möchte aus einem VARCHAR(2) Feld aus einem Text/einer Zahl eine Ziffer extrahieren und mit dieser rechnen. Ich habe es unteranderem wie folgt versucht:

    select cast(substr(p.varcharfeld,4,1) as number) * 5

Wert im Feld "p.varcharfeld" = '456987'

    Erwartetes Ergebnis wäre (9*5) = 45

Ich erhalte jedoch immer den Fehler ORA-01722. Hat hier jemand eine Idee?

Um es gleich vorab zu sagen, eine Änderung des Datentyps von VARCHAR(2) auf NUMBER ist nicht möglich, da es in dem Feld auch alphanumerische Werte gibt.

Besten Dank im Voraus für Eure Hilfe/Ideen!

Re: Mit Zahl aus VARCHAR2 Feld rechnen

BeitragVerfasst: Do 8. Feb 2018, 10:02
von Micha
Hallo Goldstueck1977,

das kann an folgenden Herausforderung liegen:

- Beim Vergleich von alphanumerischen mit numerischen Werten führt Oracle immer ein implizites TO_NUMBER durch.
- Der implizite Cast TO_NUMBER findet vor der Anwendung des Selects statt und daher knallt es.

Lösungsansatz:
Du musst sicherstellen, dass Du ein Convert kein Cast durchführst.

-
Micha