Guida per Principianti sugli Stringhe in PL/SQL

Ciao, futuri maghi PL/SQL! Oggi ci imbarcheremo in un viaggio emozionante nel mondo delle stringhe in PL/SQL. Non preoccuparti se non hai mai scritto una riga di codice prima - sarò la tua guida amichevole, e affronteremo tutto passo per passo. Alla fine di questa guida, sarai in grado di manipolare le stringhe come un professionista!

PL/SQL - Strings

Cos'è una Stringa?

Prima di immergerci, iniziiamo con le basi. In programmazione, una stringa è semplicemente una sequenza di caratteri. Potrebbe essere una parola, una frase o persino un paragrafo intero. Pensa a qualsiasi testo che potresti digitare sulla tua tastiera.

Dichiarazione delle Variabili Stringa

In PL/SQL, dobbiamo dichiarare le nostre variabili prima di poterle utilizzare. È come presentarsi prima di iniziare una conversazione - è solo educazione!

Dichiarazione di Base della Stringa

Iniziamo con il modo più semplice per dichiarare una variabile stringa:

DECLARE
my_name VARCHAR2(50) := 'John Doe';
BEGIN
DBMS_OUTPUT.PUT_LINE('Il mio nome è: ' || my_name);
END;

In questo esempio:

  • Utilizziamo la parola chiave DECLARE per iniziare le nostre dichiarazioni di variabili.
  • my_name è il nome della nostra variabile.
  • VARCHAR2(50) significa che è una stringa di lunghezza variabile che può contenere fino a 50 caratteri.
  • := è l'operatore di assegnazione, simile a un segno di uguale.
  • 'John Doe' è il valore iniziale che stiamo assegnando a my_name.

Quando eseguiamo questo codice, outputterà: "Il mio nome è: John Doe"

Utilizzo di Diversi Tipi di Stringa

PL/SQL offre diversi tipi di stringa. Vediamo alcuni di essi:

DECLARE
v_varchar2 VARCHAR2(20) := 'Ciao, Mondo!';
v_char CHAR(10) := 'Fisso     ';
v_long LONG := 'Questa è una lunga stringa che può contenere fino a 32,760 caratteri';
BEGIN
DBMS_OUTPUT.PUT_LINE('VARCHAR2: ' || v_varchar2);
DBMS_OUTPUT.PUT_LINE('CHAR: ' || v_char);
DBMS_OUTPUT.PUT_LINE('LONG: ' || v_long);
END;

Ecco cosa sta succedendo:

  • VARCHAR2 è il tipo più comune, per stringhe di lunghezza variabile.
  • CHAR è per stringhe di lunghezza fissa. Nota come riempie lo spazio extra con spazi vuoti.
  • LONG può contenere stringhe molto lunghe, ma è meno flessibile in alcune operazioni.

Funzioni e Operatori di Stringa in PL/SQL

Ora che sappiamo come dichiarare le stringhe, divertiamoci con esse!

Concatenazione

La concatenazione è solo un modo di dire "unire le stringhe insieme". In PL/SQL, utilizziamo l'operatore ||:

DECLARE
first_name VARCHAR2(20) := 'Jane';
last_name VARCHAR2(20) := 'Smith';
full_name VARCHAR2(41);
BEGIN
full_name := first_name || ' ' || last_name;
DBMS_OUTPUT.PUT_LINE('Nome completo: ' || full_name);
END;

Questo outputterà: "Nome completo: Jane Smith"

Funzioni di Stringa

PL/SQL offre una vasta gamma di funzioni incorporate per manipolare le stringhe. Esploriamo alcune delle più utili:

Funzione Descrizione Esempio
UPPER Converte la stringa in maiuscolo UPPER('hello') restituisce 'HELLO'
LOWER Converte la stringa in minuscolo LOWER('WORLD') restituisce 'world'
INITCAP Capitalizza la prima lettera di ogni parola INITCAP('john doe') restituisce 'John Doe'
LENGTH Restituisce la lunghezza della stringa LENGTH('OpenAI') restituisce 6
SUBSTR Estrae una porzione della stringa SUBSTR('HelloWorld', 1, 5) restituisce 'Hello'
TRIM Rimuove i caratteri specificati dall'inizio/fine TRIM(' Hello ') restituisce 'Hello'
REPLACE Sostituisce tutte le occorrenze di un sottotesto REPLACE('JACK and JILL','J','BL') restituisce 'BLACK and BLILL'

Vediamo queste in azione:

DECLARE
v_string VARCHAR2(50) := '  ciao, mondo!  ';
BEGIN
DBMS_OUTPUT.PUT_LINE('Originale: ' || v_string);
DBMS_OUTPUT.PUT_LINE('UPPER: ' || UPPER(v_string));
DBMS_OUTPUT.PUT_LINE('LOWER: ' || LOWER(v_string));
DBMS_OUTPUT.PUT_LINE('INITCAP: ' || INITCAP(v_string));
DBMS_OUTPUT.PUT_LINE('LENGTH: ' || LENGTH(v_string));
DBMS_OUTPUT.PUT_LINE('SUBSTR: ' || SUBSTR(v_string, 3, 5));
DBMS_OUTPUT.PUT_LINE('TRIM: ' || TRIM(v_string));
DBMS_OUTPUT.PUT_LINE('REPLACE: ' || REPLACE(v_string, 'o', '0'));
END;

Questo codice outputterà:

Originale:   ciao, mondo!
UPPER:   CIAO, MONDO!
LOWER:   ciao, mondo!
INITCAP:   Ciao, Mondo!
LENGTH: 16
SUBSTR: ciao
TRIM: ciao, mondo!
REPLACE:   cia0, mu0ndo!

Mettere Tutto Insieme

Ora, combiniamo ciò che abbiamo imparato in un esempio più complesso:

DECLARE
v_sentence VARCHAR2(100) := 'Il rapido fox salta sopra il cane pigro';
v_word VARCHAR2(20);
v_count NUMBER;
BEGIN
-- Conta il numero di parole
v_count := LENGTH(v_sentence) - LENGTH(REPLACE(v_sentence, ' ', '')) + 1;
DBMS_OUTPUT.PUT_LINE('Numero di parole: ' || v_count);

-- Estrae e capitalizza la 4ª parola
v_word := INITCAP(SUBSTR(v_sentence,
INSTR(v_sentence, ' ', 1, 3) + 1,
INSTR(v_sentence, ' ', 1, 4) - INSTR(v_sentence, ' ', 1, 3) - 1));
DBMS_OUTPUT.PUT_LINE('La 4ª parola è: ' || v_word);

-- Sostituisce 'fox' con 'gatto' e 'dog' con 'topo'
v_sentence := REPLACE(REPLACE(v_sentence, 'fox', 'gatto'), 'dog', 'topo');
DBMS_OUTPUT.PUT_LINE('Frase modificata: ' || v_sentence);
END;

Questo esempio dimostra:

  1. Contare le parole contando gli spazi
  2. Estrarre una parola specifica utilizzando SUBSTR e INSTR
  3. Sostituire più parole in una frase

Output:

Numero di parole: 9
La 4ª parola è: Fox
Frase modificata: Il rapido gatto salta sopra il cane topo

Ecco fatto! Hai appena fatto i tuoi primi passi nel meraviglioso mondo delle stringhe PL/SQL. Ricorda, la pratica fa la perfezione, quindi non aver paura di sperimentare con queste funzioni e creare le tue avventure di manipolazione delle stringhe.

Prima di sapere, sarai in grado di concatenare query complesse e impressionare i tuoi amici con la tua abilità in PL/SQL. Continua a programmare e divertiti a manipolare le stringhe!

Credits: Image by storyset