Guida per Principianti sulle Variabili in PL/SQL

Ciao a tutti, futuri maghi di PL/SQL! Oggi ci imbarchiamo in un viaggio entusiasmante nel mondo delle variabili PL/SQL. Non preoccupatevi se siete nuovi al programming – sarò il vostro guida amichevole, e affronteremo tutto passo per passo. Alla fine di questo tutorial, sarai in grado di gestire le variabili come un professionista!

PL/SQL - Variables

Cos'è una Variabile?

Prima di immergerci, capiremo cos'è una variabile. Pensate alle variabili come a piccoli contenitori nella memoria del vostro computer che conservano dati. Proprio come potreste usare scatole diverse per conservare oggetti diversi nella vostra stanza, usiamo variabili per conservare diversi tipi di dati nei nostri programmi.

Dichiarazione delle Variabili in PL/SQL

In PL/SQL, dichiarare una variabile è come presentarsi a qualcuno nuovo. Dite al programma: "Ciao, sono qui, ed ecco cosa posso contenere!"

Sintassi di Base

La sintassi di base per dichiarare una variabile in PL/SQL è:

nome_variabile tipo_dato;

Analizziamo questo:

  • nome_variabile è il nome che choose per la vostra variabile
  • tipo_dato è il tipo di dati che la variabile può contenere

Esempi

DECLARE
mio_nome VARCHAR2(50);
mia_eta NUMBER;
sono_studente BOOLEAN;
BEGIN
-- Il vostro codice qui
END;

In questo esempio:

  • mio_nome può contenere fino a 50 caratteri
  • mia_eta può contenere un numero
  • sono_studente può essere TRUE o FALSE

Ricordate, in PL/SQL, dichiariamo le variabili nella sezione DECLARE, prima della dichiarazione BEGIN.

Tipi di Dati Comuni

Ecco una tabella dei tipi di dati comuni che incontrerete:

Tipo di Dato Descrizione Esempio
VARCHAR2 Stringa di caratteri di lunghezza variabile 'Ciao, Mondo!'
NUMBER Valori numerici 42, 3.14
DATE Valori di data e ora '01-GEN-2023'
BOOLEAN Valori logici (TRUE/FALSE) TRUE

Inizializzazione delle Variabili in PL/SQL

Ora che abbiamo dichiarato le nostre variabili, diamo loro dei valori! Questo processo si chiama inizializzazione.

Inizializzazione di Base

Potete inizializzare una variabile subito dopo la sua dichiarazione:

DECLARE
saluto VARCHAR2(20) := 'Ciao, PL/SQL!';
numero_fortunato NUMBER := 7;
BEGIN
DBMS_OUTPUT.PUT_LINE(saluto);
DBMS_OUTPUT.PUT_LINE('Il mio numero fortunato è: ' || numero_fortunato);
END;

In questo esempio, stiamo dicendo "Ciao" a PL/SQL e condividendo il nostro numero fortunato. := è l'operatore di assegnazione in PL/SQL.

Inizializzazione con NULL

A volte, potreste voler dichiarare una variabile ma non assegnarle un valore subito. In quel caso, potete usare NULL:

DECLARE
input_utente VARCHAR2(100) := NULL;
BEGIN
-- Otterremo l'input dell'utente più tardi
END;

Ambito delle Variabili in PL/SQL

L'ambito delle variabili è come il quartiere di una variabile – definisce dove la variabile può essere vista e utilizzata.

Variabili Locali

Le variabili dichiarate in un blocco sono locali a quel blocco. Non possono essere viste al di fuori del loro blocco.

DECLARE
variabile_esterna VARCHAR2(20) := 'Sono fuori!';
BEGIN
DBMS_OUTPUT.PUT_LINE(variabile_esterna);

DECLARE
variabile_interna VARCHAR2(20) := 'Sono dentro!';
BEGIN
DBMS_OUTPUT.PUT_LINE(variabile_esterna);  -- Questo funziona
DBMS_OUTPUT.PUT_LINE(variabile_interna);  -- Questo funziona anche
END;

DBMS_OUTPUT.PUT_LINE(variabile_esterna);  -- Questo funziona
-- DBMS_OUTPUT.PUT_LINE(variabile_interna);  -- Questo causerebbe un errore
END;

In questo esempio, variabile_interna è come un amico timido che esce solo nel blocco interno. Il blocco esterno non può vederlo!

Variabili Globali

Se volete che una variabile sia visibile ovunque nel programma, dichiaratela nel blocco più esterno.

DECLARE
variabile_globale NUMBER := 100;

PROCEDURE stampa_globale IS
BEGIN
DBMS_OUTPUT.PUT_LINE('Valore della variabile globale: ' || variabile_globale);
END;

BEGIN
stampa_globale;
variabile_globale := variabile_globale + 50;
stampa_globale;
END;

Qui, variabile_globale è come un ragazzo popolare – tutti lo conoscono e possono interagire con lui!

Assegnazione dei Risultati di una Query SQL alle Variabili PL/SQL

Una delle cose più cool di PL/SQL è come si integra senza problemi con SQL. Potete usare query SQL per assegnare valori alle vostre variabili PL/SQL!

Query a Singola Riga

DECLARE
nome_dipendente VARCHAR2(100);
stipendio_dipendente NUMBER;
BEGIN
SELECT first_name || ' ' || last_name, salary
INTO nome_dipendente, stipendio_dipendente
FROM dipendenti
WHERE employee_id = 100;

DBMS_OUTPUT.PUT_LINE('Dipendente: ' || nome_dipendente);
DBMS_OUTPUT.PUT_LINE('Stipendio: $' || stipendio_dipendente);
END;

In questo esempio, stiamo recuperando il nome e lo stipendio di un dipendente dalla tabella dipendenti e conservandoli nelle nostre variabili PL/SQL.

Query apiù Righe

Per più righe, dobbiamo usare un cursore o un bulk collect. Ecco un esempio con bulk collect:

DECLARE
TYPE tabella_nomi_type IS TABLE OF VARCHAR2(100);
nomi_dipendenti tabella_nomi_type;
BEGIN
SELECT first_name || ' ' || last_name
BULK COLLECT INTO nomi_dipendenti
FROM dipendenti
WHERE department_id = 60;

FOR i IN 1..nomi_dipendenti.COUNT LOOP
DBMS_OUTPUT.PUT_LINE('Dipendente ' || i || ': ' || nomi_dipendenti(i));
END LOOP;
END;

Questo script recupera tutti i nomi dei dipendenti del dipartimento 60 e li conserva in una tabella PL/SQL. Poi, cicla attraverso questa tabella per stampare ogni nome.

E voilà, gente! Abbiamo coperto le basi delle variabili PL/SQL, dalla dichiarazione all'inizializzazione, l'ambito e persino come riempirle con i risultati delle query SQL. Ricordate, la pratica rende perfetti, quindi non abbiate paura di sperimentare con questi concetti.

Prima di salutarvi, ecco una piccola battuta per voi: Perché il programmatore ha lasciato il suo lavoro? Perché non otteneva array (una promozione)! ?

Buon coding, e che le vostre variabili siano sempre ben educate!

Credits: Image by storyset