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!
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:
- Contare le parole contando gli spazi
- Estrarre una parola specifica utilizzando
SUBSTR
eINSTR
- 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