Manipolazione delle stringhe

Oracle dispone di speciali funzioni che l’utente può utilizzare per gli scopi più disparati nelle sue istruzioni SQL.

Le funzioni a singola riga (inline) sono chiamate così perchè vengono valutate una sola volta per ogni riga di tabella interessata. Possono essere impiegate negli statementSELECT (direttamente sulle colonne interrogate), nelle clausole WHERE e ORDER BY ma anche nelle operazioni di modifica dati in tabella (clausola SET del comando UPDATE), di inserimento dati in tabella (clausola VALUES del comando INSERT) e di cancellazione (clausola WHERE del comando DELETE).

Le funzioni che tratteremo sono solamente alcune fra le innumerevoli messe a disposizione da Oracle. Per un elenco completo consigliamo comunque di consultare la documentazione ufficiale di Oracle.

Funzioni sui caratteri

ASCII

La funzione restituisce il valore decimale ASCII corrispondente al carattere fornito.

Sintassi di ASCII

ASCII (<carattere>)

Esempio: il valore ASCII dei caratteri ‘B’ e ‘m’

SQL> SELECT ASCII ('B') Maiu_B, ASCII ('m') Minu_M FROM DUAL;
Risultato della query

CHR

La funzione restituisce il carattere corrispondente al valore numerico (ASCII) fornito.

Sintassi di CHR

CHR (<i>)

Esempio: caratteri corrispondenti ai codici ASCII (6, 109 e 90)

SQL> SELECT CHR (66), CHR (109), CHR (90) FROM DUAL;
Risultato della query

CONCAT

La funzione restituisce una stringa data dalla concatenazione, ovvero dall’unione, delle due stringhe fornite.

Sintassi di CONCAT

CONCAT (<stringa1>, <stringa2>)

Esempio: concatenare due stringhe per formare un messaggio di benvenuto

SQL> SELECT CONCAT ('Benvenuti in ', 'Oracle Server 9i') AS Msg FROM DUAL;
Risultato della query

INITCAP

La funzione restituisce la stessa stringa fornita come parametro di input ma con il primo carattere in maiuscolo per ogni parola.

Sintassi di INITCAP

CONCAT (<stringa1>, <stringa2>)

Esempio

SQL> SELECT INITCAP ('benvenuti in oracle server 9i') AS Msg FROM DUAL;
Risultato della query

LENGTH

La funzione restituisce la lunghezza della stringa fornita come parametro di input, ovvero il numero di caratteri di cui è composta.

Sintassi di LENGHT

LENGHT (<stringa>)

Esempio

SQL> SELECT LENGTH ('Oracle è il database relazionale più potente al mondo') AS Msg FROM DUAL;
Risultato della query

LOWER

La funzione restituisce la stessa stringa fornita come parametro di input, ma con tutti i caratteri di cui è composta in minuscolo.

Sintassi di LOWER

LOWER (<stringa>)

Esempio

SQL> SELECT LOWER ('MI CHIAMO PETER STRASVOSKY') AS Msg FROM DUAL;
Risultato della query

UPPER

È la funzione opposta alla LOWER. Restituisce la stessa stringa fornita come parametro di input, ma con tutti i caratteri di cui è composta in maiuscolo.

Sintassi di UPPER

UPPER (<stringa>)

SUBSTR

La funzione restituisce una porzione della stringa fornita come parametro di input tenendo conto della posizione del carattere di partenza e del numero di caratteri da restituire.

Sintassi di SUBSTR

SUBSTR (<stringa>, x, y)

Dove x indica la posizione del carattere di partenza ed y il numero di caratteri da estrarre.

Esempio

SQL> SELECT SUBSTR ('Andai nei boschi perchè volevo vivere', 7, 17) AS Msg FROM DUAL;
Risultato della query
Both comments and pings are currently closed.

Comments are closed.