Veröffentlicht 24. Juli 200322 j 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.
24. Juli 200322 j 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;
24. Juli 200322 j 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
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.