Announcement

Collapse
No announcement yet.

Aus einem VARCHAR2 Feld alles außer Ziffern entfernen

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Aus einem VARCHAR2 Feld alles außer Ziffern entfernen

    Hallo
    Ich habe in einem VARCHAR2 Feld eine Telefonnummer gespeichert, welche in unterschiedlichsten Formaten eingegeben wurde.
    zb.:
    • 01 2345/23-2
      "01 2345 23 2"
      01/23 45 23 DW 2
      012345232 (Büro)

    Ich bräuchte von der Telefonnummer aber jetzt nur die Ziffern ohne Leerstelle, also 012345232
    Ich habe es mit folgender Funktion probiert
    Code:
    for i in 1..length(vvc_telnr) loop
        select substr(vvc_telnr,i,1)
        into vvc_hilf
        from dual;
        
        if vvc_hilf in (0,1,2,3,4,5,6,7,8,9) then
          vvc_nr := vvc_nr||vvc_hilf;
        end if;
    end loop;
    return vvc_nr;
    welches zu folgender Fehlermeldung führt
    > ORA-06502: PL/SQL: numerischer oder Wertefehler: Fehler beim Konvertieren von Zeichen zu Zahl

    Danke für die Hilfe

  • #2
    Welche Oracle-Version wird genutzt ? Ab ORACLE 10 können regexp genutzt werden, im Beispiel werden all Nicht-Digits ersetzt/weggelassen:
    Code:
    WITH data AS
     (SELECT  '01 2345/23-2'   x  FROM dual UNION ALL
      SELECT  '"01 2345 23 2"'    FROM dual UNION ALL
      SELECT  '01/23 45 23 DW 2'  FROM dual UNION ALL
      SELECT  '012345232 (Büro)'  FROM dual
     ) 
    SELECT regexp_replace(x,'([^[:digit:]])') telnr FROM data;
    
    TELNR           
    ----------------
    012345232       
    012345232       
    012345232       
    012345232       
    
    4 rows selected.
    Zuletzt editiert von jum; 26.11.2010, 17:01.

    Comment


    • #3
      Danke, so geht es natürlich noch viel einfacher

      Comment

      Working...
      X