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 statement SELECT
(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;
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;
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;
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;
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;
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;
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;