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