back to top

Funzioni per gestire le stringhe in PL/SQL – Guida Oracle

Come abbiamo visto, tramite le query possiamo estrarre il contenuto delle tabelle del database. Finora, abbiamo estratto i dati così come erano stati memorizzati, tuttavia l’SQL ci permette, tramite una serie di funzioni, di manipolare in qualche maniera i dati che andiamo ad estrarre in modo tale da restituirci qualcosa di più consono a quelle che possono essere le nostre esigenze.

A seconda del tipo di dato che stiamo estraendo abbiamo tutta una serie di funzioni per alaborarlo. Di seguito passeremo in rassegna un elenco di funzioni, con relativi semplici esempi, per le seguenti tipologie di dati:

  • Stringhe
  • Numeri
  • Date

Attenzione: in questa sede, ovviamente, non è possibile una trattazione completa di tutte le funzioni disponibili, ci limiteremo – pertanto – a scorrere in rassegnal le funzioni più conosciute ed utilizzate.

Funzioni per le stringhe

Vedremo di seguito le seguenti funzioni per le stringhe:

  • SUBSTR
  • INSTR
  • CONCAT
  • LIKE

Prima di procedere, dato che utilizzeremo la nostra tabella "Anagrafica", eseguiamo una query per verificarne il contenuto. Dovrebbe presentarsi come di seguito:

NomeCognomeStipendioRuolo
MarioRossi20000Impiegato
CarloNeri35000Quadro
LuciaBianchi20000Impiegato
MariaViola35000Quadro
MarcoMarrone25000Impiegato

SUBSTR

La funzione SUBSTR ha la seguente sintassi:

SUBSTR(x,y[,z])

ed ha lo scopo di restituire una porzione di stringa. Più precisamente, la funziome SUBSTR restituisce una porzione della stringa x che inizia alla posizione y ed ha lunghezza pari a z caratteri o fino alla fine della stringa se z è omesso. Per intenderci, se scriviamo:

SELECT SUBSTR(Nome,2) FROM Anagrafica WHERE Cognome = 'Marrone';

otterremo come risultato: "arco".

Se invece avessimo scritto:

SELECT SUBSTR(Nome,2,3) FROM Anagrafica WHERE Cognome = 'Marrone';

avremmo ottenuto come risultato: "arc".

INSTR

La funzione INSTR presenta la seguente sintassi:

INSTR(x,y[,z])

ed ha lo scopo di restituire la posizione della stringa y all’interno della stringa x eventualmente partendo dalla posizione z o dalla prima posizione se z è omesso. Per intenderci, se scriviamo:

SELECT INSTR('La mia stringa.','mia') FROM DUAL;

Otterremo come risultato: 4.

Se invece scriviamo:

SELECT INSTR('La mia stringa.','mia',5) FROM DUAL;

Otterremo come risultato: 0.

CONCAT

La funzione CONCAT, la cui sintassi è la seguente:

CONCAT(x,y,[z])

restituisce la stringa che si ottiene concatenando le stringhe x, y, z… Per intenderci, se scriviamo:

SELECT CONCAT(Nome,Cognome) FROM Anagrafica WHERE Cognome = 'Marrone';

Otterremo come risultato: ‘MarcoMarrone’.

Si noti che esiste un altro operatore per la concatenazione delle stringhe ed è costituito dai caratteti ||. Se infatti scriviamo:

SELECT Nome || Cognome FROM Anagrafica WHERE Cognome = 'Marrone';

Otterremo ugualmente come risultato: ‘MarcoMarrone’.

LIKE

La funzione LIKE permette un confronto fra stringhe di caratteri utilizzando dei modelli costruiti con i caratteri speciali ‘%’ e ‘_’. Il primo sostituisce un numero imprecisato di caratteri (anche 0), mentre il secondo ne sotituisce uno solo. Per intenderci, se scriviamo:

SELECT * FROM Anagrafica WHERE Nome like 'M%';

Otterremo come risultato:

NomeCognomeStipendioRuolo
MarioRossi20000Impiegato
MariaViola35000Quadro
MarcoMarrone25000Impiegato

Se invece scriviamo:

SELECT * FROM Anagrafica WHERE Nome like 'Mari_';

Otterremo come risultato:

NomeCognomeStipendioRuolo
MarioRossi20000Impiegato
MariaViola35000Quadro
Pubblicitร