Oracle/PLSQL - IsNumeric

Tramite una semplice riga di codice in PLSQL è possibile sapere se una stringa contiene un valore numerico o meno.

Data la nostra stringa: foo

 LENGTH (TRIM (TRANSLATE (foo, ' +-.0123456789', ' ') ) )

La quale ritorna:

  • null, se il valore contenuto nella stringa rappresenta un numero.
  • un valore >= 0, se la stringa è alfanumerica.

Esempi:

LENGTH (TRIM (TRANSLATE ('123b', ' +-.0123456789',' ') ) );

ritorna 1

LENGTH (TRIM (TRANSLATE ('a123b', ' +-.0123456789',' ') ) );

ritorna 2

LENGTH (TRIM (TRANSLATE ('1256.54', ' +-.0123456789',' ') ) );

ritorna null

LENGTH (TRIM (TRANSLATE ('-56', ' +-.0123456789',' ') ) );

ritorna null

Risorsa originaria in inglese:

http://www.techonthenet.com/oracle/questions/isnumeric.htm

Print | posted on mercoledì 1 settembre 2004 00:31

Comments on this post

# re: Oracle/PLSQL - IsNumeric

Requesting Gravatar...
It also doesn't work for strings like
"1+2+3"
or
"34-"
or
"----+++++.....---"
Left by Jens Hykkelbjerg on gen 13, 2005 5:08
Comments have been closed on this topic.