Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

Hallo,

ich habe folgendes Problem:

In einer Oracle-Datenbank soll ich eine Funktion schreiben, die u.a. überprüft, ob in einem String ein nummerischer Wert steht.

Weiß da einer von euch, mir welcher Funktion ich das machen könnte.

Wenn ihr noch weitere Informationen braucht, dann fragt bitte.

Ich danke euch.

Geschrieben

Stammt nicht von mir, sondern von nem Kollegen, muss entsprechend umbauen, aber das Pronzip ist, dass man den ASCII Code prüft und schaut, ob es in der Coderange von Zahlen ist.


FUNCTION Check(

     pi_str_ToCheck IN VARCHAR2

  ) 

RETURN

  boolean

IS

    l_num_Char            NUMBER;

    l_num_Length          NUMBER;

    --

  BEGIN


    l_num_Length := LENGTH(pi_str_ToCheck);

    IF l_num_Length > 0 THEN

      --

      FOR idx IN 1..l_num_Length LOOP

  	    --

        l_num_Char := ASCII(SUBSTR(pi_str_ToCheck,idx,1));

        --

        IF NOT (l_num_Char BETWEEN 48 AND 57)  -- 0 ... 9


        THEN

          return FALSE

        END IF;

      END LOOP;

    END IF;

Geschrieben

Probiers mal so:

FUNCTION isnumeric ( string IN VARCHAR2) RETURN boolean

IS

n NUMBER;

BEGIN

n := to_number(string);

return(TRUE);

EXCEPTION

when others then

return(FALSE);

END;

Gruß, Axl

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...