Funzioni SINGLE-ROW

Le funzioni single-row sono usate per manipolare i dati.
R e g o l e:
  • Può accettare come input una costante, un nome di una colonna, nessun parametro (come Sysdate), una variabile o una espressione;
  • ritorna sempre un valore per ogni riga restituita dalla query;
  • può restituire un valore diverso dal tipo di categoria di funzione. Le funzioni che lavorano su  date e caratteri possono restituiscono valori di altro tipo come Months_between e Lenght.  Invece funzioni di tipo numerico restituiscono solo tipi numerici;
  • può essere utilizzato nelle clausole Select, Where e Order by.

Funzioni che operano sui Caratteri

LOWER('CIAO') = ciao
UPPER('ciao') = CIAO
INITCAP('ciao') = Ciao
La funzione LENGTH (string) ha come input una stringa e restituisce un valore numerico pari al numero di caratteri presenti nella stringa:
length('A short string') = 14
La funzione CONCAT (string 1, string 2) concatena due stringhe di input come l'operatore ||:
concat('Ciao',' come và?') = Ciao come và?
La funzione SUBSTR (string, start position, number of characters) restituisce parte della stringa di input consistente di un numero di caratteri specificati dal 3° parametro a partire dal carattere individuato dalla posizione sorgente:
substr('www.oralinu.eu',5,7) = oralinu
La funzione INSTR (source string, search item, [start position],[nth occurrence of search item]) restituisce un numero che rappresenta la posizione nella string di input, a partire dalla position di inizio, dove c'è la n-esima occorrenza dell' "item" da cercare:
instr('http://www.oralinu.eu','.',1,2) = 19
La funzione LPAD (string, length after padding, padding string) e RPAD (string, length after padding, padding string) aggiunge padding string a sinistra o destra della stringa di input per ottenere una stringa lunga quanto indicato dal secondo paramtro di input.

rpad('www.oralinu.eu',16,'#')= www.oralinu.eu##
lpad('www.oralinu.eu',16,'#')= ##www.oralinu.eu

La funzione TRIM elimina dalla stinga di input (all'inizio e alla fine) i caratteri specificati come secondo paramtro:
trim('w' from 'www.oralinu.eu') = .oralinu.eu

trim('u' from 'www.oralinu.eu') = www.oralinu.e
trim('o' from 'www.oralinu.eu')= www.oralinu.eu
trim('u' from 'ubuntu') = bunt
La funzione REPLACE (text, search item, replacement item) sostituisce tutte le search item presenti nella stringa di input con il replacement item; se replacement item è omesso la funzione rimuove dal testo tutte le occorrenze di search item.
replace('www.oralinu.eu','al','or') = www.ororinu.eu


Funzioni che operano su Numeri

La funzione ROUND (number, decimal precision)  arrotonda al valore decimale più grande o più piccolo:
Round(35.48,1) = 35,5
Round(35.55,1) = 35,6
Se l'argomento è -1 viene arrotondato il numero alla più vicina unità del 10.
Round(35.55,-1)  = 40
Round(33.65,-1) = 30

Se il secondo argomento è 0 o non presente viene arrotondato per eccesso o difetto:
ROUND(33.85) = ROUND(33.85,0) = 34
ROUND(33.15,0) = ROUND(33.15) = 33

La funzione TRUNC(number, decimal precision)  tronca il valore decimale:
trunc(35.48,1) = 35,4
La funzione MOD (dividend, divisor)  restituisce il resto della divisione:
mod(35,4) = 3

Funzioni che operano sul tipo Date

La funzione MONTHS_BETWEEN (date_1, date_2) restituisce il numero di mesi tra due date, mentre ADD_MONTHS (date_1, number of months) restituisce una data aggiungendo il numero di mesi alla data:
months_between('01-09-2013','01-12-2013') = -3
add_months('01-09-2013',2) = 01-11-2013

La funzione LAST_DAY(date_1) restituisce l'ultimo giorno del mese specificato nella data input, mentre NEXT_DAY (date_1, giorno della settimana) restituisce la data del giorno della settimana a partire dalla data di input. Il giorno della settimana può essere anche numerico, quindi ad 1 corrisponde lunedì ma se il parametro NLS_TERRITORY è settato ad AMERICA allora 1 corrisponde a  domenica.
last_day('16-09-2013') = 30-09-2013
next_day('16-09-2013','Mercoledì') = 18-09-2013

La funzione SYSDATE non prende parametri e restituisce la data e ora attuale del server in cui è istallato il database.
La funzione ROUND (date, date precision format) e TRUNC (date, date precision format) arrotondano e troncano una data al valore di data più vicino al formato specificato come day, month, or year:
Se sysdate = 19-09-2013 11:08:37 allora
round(sysdate,'month') = 01-10-2013 00:00:00
trunc(sysdate,'month') = 01-09-2013 00:00:00
trunc(sysdate,'year') = 01-01-2013 00:00:00
round(sysdate,'year') = 01-01-2014 00:00:00

Se è assente il parametro "date precision format" nella TRUNC, il valore di default è day.

Post popolari in questo blog

ORA-12154: TNS: il listener non è attualmente a conoscenza del servizio richiesto nel descrittore di connessione

Create e Drop Pluggable Database