Crea sito

Espressioni Regolari in Oracle

Supponiamo di avere un campo varchar e vogliamo verificare se tutti i valori inseriti sono numerici o anche alfanumerici (in pratica voglio simulare una funzione del tipo is_number). La soluzione al problema può essere la creazione di una funzione isnumeric che restituisce true se il campo è un numero. Ma se avete un database oracle versione 10g o superiore allora potete sfruttare le espressioni regolari.


Ad esempio una select di questo tipo individua i record di tipo solo numerico:

select codice from utenti where REGEXP_LIKE (codice,'^[[:digit:]]+$');

Per individuare invece i record solo alfanumerici (posso negare anche la query precedente) faccio così:

select codice from utenti where REGEXP_LIKE (codice,'^[a-Z]');
select codice from utenti where not REGEXP_LIKE (codice,'^[[:digit:]]+$');

Altri esempi di espressioni regolari sono consultabili su PSOUG.

Leave a Reply

Il tuo indirizzo email non sarà pubblicato.

*