Switch to full style
Alles zur Datenbankentwicklung im Oracle-Umfeld...
Antwort erstellen

Mit Zahl aus VARCHAR2 Feld rechnen

Mi 31. Jan 2018, 18:23

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

Do 8. Feb 2018, 10:02

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
Antwort erstellen