Tipi di dati PL/SQL
Ciao, futuri programmatori! Oggi ci immergeremo nel mondo affascinante dei tipi di dati PL/SQL. Non preoccupatevi se siete nuovi al编程; vi guiderò in questo viaggio passo dopo passo. Alla fine di questo tutorial, vi sentirete a vostro agio con vari tipi di dati in PL/SQL e pronti per iniziare la vostra avventura di programmazione!
Tipi di dati scalari PL/SQL e sottotipi
Iniziamo dalle basi. In PL/SQL, i tipi di dati scalari sono i mattoni delle nostre applicazioni. Rappresentano valori singoli, come numeri o testi.
Cos'è un tipo di dati scalare?
I tipi di dati scalari sono la forma più semplice di dati in PL/SQL. Sono come gli atomi del nostro universo di programmazione - unità piccole e indivisibili che utilizziamo per costruire strutture più complesse.
Ecco un esempio semplice per illustrare un tipo di dati scalare:
DECLARE
my_name VARCHAR2(50) := 'John Doe';
BEGIN
DBMS_OUTPUT.PUT_LINE('Il mio nome è: ' || my_name);
END;
In questo esempio, my_name
è una variabile del tipo VARCHAR2
, utilizzato per memorizzare testi. Le abbiamo assegnato il valore 'John Doe'. Quando eseguiamo questo codice, outputterà: "Il mio nome è: John Doe".
Tipi di dati numerici PL/SQL e sottotipi
Ora parliamo di numeri. PL/SQL ha diversi tipi di dati numerici per gestire diversi tipi di numeri.
Tipi di dati numerici comuni
Tipo di dati | Descrizione | Esempio |
---|---|---|
NUMBER | Numero generico | NUMBER(10,2) |
INTEGER | Numeri interi | INTEGER |
BINARY_FLOAT | Numero a virgola mobile a 32 bit | BINARY_FLOAT |
BINARY_DOUBLE | Numero a virgola mobile a 64 bit | BINARY_DOUBLE |
Vediamo questi in azione:
DECLARE
my_integer INTEGER := 42;
my_float BINARY_FLOAT := 3.14;
my_salary NUMBER(8,2) := 5000.50;
BEGIN
DBMS_OUTPUT.PUT_LINE('La risposta è: ' || my_integer);
DBMS_OUTPUT.PUT_LINE('Pi è approssimativamente: ' || my_float);
DBMS_OUTPUT.PUT_LINE('Il mio stipendio è: $' || my_salary);
END;
Questo script dichiara tre variabili con diversi tipi numerici. Il tipo NUMBER(8,2)
per my_salary
significa che può memorizzare fino a 8 cifre in totale, con 2 cifre dopo la virgola decimale.
Tipi di dati character PL/SQL e sottotipi
I dati testuali sono fondamentali nella programmazione. PL/SQL fornisce diversi tipi di dati character per gestire il testo in modo efficiente.
Tipi di dati character comuni
Tipo di dati | Descrizione | Esempio |
---|---|---|
VARCHAR2 | Stringa character variabile lunghezza | VARCHAR2(100) |
CHAR | Stringa character di lunghezza fissa | CHAR(10) |
NVARCHAR2 | Stringa character variabile lunghezza Unicode | NVARCHAR2(100) |
NCHAR | Stringa character di lunghezza fissa Unicode | NCHAR(10) |
Ecco come li utilizziamo nella pratica:
DECLARE
my_varchar VARCHAR2(50) := 'Ciao, Mondo!';
my_char CHAR(10) := 'Fisso ';
my_nvarchar NVARCHAR2(50) := N'こんにちは'; -- "Ciao" in giapponese
BEGIN
DBMS_OUTPUT.PUT_LINE('VARCHAR2: ' || my_varchar);
DBMS_OUTPUT.PUT_LINE('CHAR: ' || my_char || '(fine)');
DBMS_OUTPUT.PUT_LINE('NVARCHAR2: ' || my_nvarchar);
END;
Notate come il tipo CHAR
aggiunge spazi per riempire la lunghezza fissa.
Tipi di dati boolean PL/SQL
I tipi di dati boolean sono essenziali per prendere decisioni nei nostri programmi. Possono avere solo tre valori possibili: TRUE, FALSE o NULL.
DECLARE
is_student BOOLEAN := TRUE;
has_job BOOLEAN := FALSE;
is_married BOOLEAN;
BEGIN
IF is_student THEN
DBMS_OUTPUT.PUT_LINE('Questa persona è uno studente.');
END IF;
IF NOT has_job THEN
DBMS_OUTPUT.PUT_LINE('Questa persona non ha un lavoro.');
END IF;
IF is_married IS NULL THEN
DBMS_OUTPUT.PUT_LINE('Non sappiamo se questa persona è sposata.');
END IF;
END;
Questo script dimostra come utilizziamo i valori booleani per prendere decisioni nel nostro codice.
Tipi di dati datetime e interval PL/SQL
Quando si lavora con date e ore, PL/SQL fornisce tipi di dati specifici per gestire questi valori in modo accurato.
Tipi di dati datetime comuni
Tipo di dati | Descrizione | Esempio |
---|---|---|
DATE | Data e ora | DATE |
TIMESTAMP | Data e ora con secondi frazionari | TIMESTAMP |
INTERVAL YEAR TO MONTH | Intervallo di tempo in anni e mesi | INTERVAL YEAR TO MONTH |
INTERVAL DAY TO SECOND | Intervallo di tempo in giorni, ore, minuti e secondi | INTERVAL DAY TO SECOND |
Vediamo questi in azione:
DECLARE
current_date DATE := SYSDATE;
future_date TIMESTAMP := SYSTIMESTAMP + INTERVAL '1' YEAR;
age_interval INTERVAL YEAR TO MONTH;
BEGIN
age_interval := (SYSDATE - TO_DATE('1990-01-01', 'YYYY-MM-DD')) YEAR TO MONTH;
DBMS_OUTPUT.PUT_LINE('Data corrente: ' || TO_CHAR(current_date, 'DD-MON-YYYY'));
DBMS_OUTPUT.PUT_LINE('Data dopo 1 anno: ' || TO_CHAR(future_date, 'DD-MON-YYYY HH24:MI:SS.FF'));
DBMS_OUTPUT.PUT_LINE('Età: ' || age_interval);
END;
Questo script dimostra come lavorare con date, timestamp e intervalli.
Tipi di dati LOB PL/SQL
Per gestire grandi quantità di dati, PL/SQL fornisce tipi di dati LOB (Large Object).
Tipi di dati LOB comuni
Tipo di dati | Descrizione | Esempio |
---|---|---|
CLOB | Character Large Object | CLOB |
BLOB | Binary Large Object | BLOB |
NCLOB | National Character Large Object | NCLOB |
Ecco un esempio semplice di utilizzo di un CLOB:
DECLARE
my_clob CLOB;
BEGIN
my_clob := 'Questa è una stringa molto lunga che potrebbe potenzialmente essere di diverse megabyte.';
DBMS_OUTPUT.PUT_LINE(DBMS_LOB.GETLENGTH(my_clob) || ' caratteri di lunghezza');
END;
Questo script crea un CLOB e dimostra come ottenere la sua lunghezza.
Sottotipi definiti dall'utente in PL/SQL
PL/SQL permette di creare i propri sottotipi basati su tipi di dati esistenti. Questo può aiutare a rendere il codice più leggibile e mantenibile.
DECLARE
SUBTYPE positive_number IS NUMBER(8,2) CHECK (positive_number > 0);
my_salary positive_number;
BEGIN
my_salary := 5000.50;
DBMS_OUTPUT.PUT_LINE('Il mio stipendio: $' || my_salary);
-- Questo genererebbe un errore:
-- my_salary := -1000;
END;
In questo esempio, abbiamo creato un sottotipo positive_number
che garantisce che il valore sia sempre positivo.
Valori NULL in PL/SQL
Infine, parliamo dei valori NULL. In PL/SQL, NULL rappresenta un valore sconosciuto o non disponibile. Non è lo stesso di zero o di una stringa vuota.
DECLARE
var1 NUMBER;
var2 VARCHAR2(10) := '';
BEGIN
IF var1 IS NULL THEN
DBMS_OUTPUT.PUT_LINE('var1 è NULL');
END IF;
IF var2 IS NOT NULL THEN
DBMS_OUTPUT.PUT_LINE('var2 non è NULL, è una stringa vuota');
END IF;
END;
Questo script dimostra la differenza tra NULL e una stringa vuota.
E вот che! Abbiamo coperto i principali tipi di dati in PL/SQL. Ricorda, comprendere i tipi di dati è fondamentale per scrivere codice efficiente e privo di errori. Continua a esercitarti e presto diventerai un esperto di PL/SQL!
Credits: Image by storyset