pl sql data types variables
Questo tutorial spiega in dettaglio cosa sono i tipi di dati PL SQL, le variabili, le costanti e i valori letterali con l'aiuto di esempi di programmazione:
Nel precedente tutorial di Serie PL / SQL , siamo stati introdotti a PL / SQL con le sue caratteristiche e la sintassi di base con esempi.
In questo articolo, discuteremo i diversi tipi di dati supportati da PL / SQL. Inoltre, esploreremo le variabili e le costanti ampiamente utilizzate in PL SQL.
Anche i letterali PL / SQL sono importanti e lo impareremo in questo tutorial insieme al suo utilizzo pratico.
Cosa imparerai:
Pl Tipi di dati SQL
Tutte le variabili, le costanti, i parametri di PL / SQL hanno un particolare tipo di dati che ne definisce l'intervallo di valori, i vincoli e il formato in cui sono memorizzati. PL / SQL contiene i tipi di dati come Large Object noto anche come LOB, Scalar, Reference e Composite.
Tipi di dati scalari
Discutiamo prima i tipi di dati scalari che consistono di quanto segue:
- NUMERICO tipi di dati che trattano valori su cui vengono eseguite operazioni matematiche.
- BOOLEANO tipi di dati che gestiscono i valori su cui vengono eseguite le operazioni logiche.
- PERSONAGGIO tipi di dati che trattano i valori costituiti da quelli alfanumerici.
- APPUNTAMENTO tipi di dati.
Tipi di dati numerici
Il tipo di dati numerico di PL / SQL è costituito da quanto segue:
- BINARY_FLOAT
- BINARY_INTERGER
- PLS_INTEGER
- BINARY_DOUBLE
- DECIMALE
- NUMERICO
- NUMERO
- GALLEGGIANTE
- INT
- NUMERO INTERO
- DOPPIA PRECISIONE
- VERO
- PICCOLO
- DEC
Snippet di codice con tipi di dati numerici:
DECLARE numA INTEGER := 10; numB NUMBER(10) := 10.8; numC DOUBLE PRECISION := 10.6; BEGIN dbms_output.put_line('The numA is: ' || numA); dbms_output.put_line('The numB is: ' || numB); dbms_output.put_line('The numC is: ' || numC); END; /
Nel codice sopra, abbiamo i tipi di dati INTEGER, NUMBER e DOUBLE PRECISION con le variabili numA, numB e numC rispettivamente. numB ha un tipo di dati numerico con precisione 10 e non ha cifre dopo il decimale.
L'output del codice precedente dovrebbe essere:
Tipi di dati carattere
I tipi di dati carattere di PL / SQL sono i seguenti, come elencato di seguito:
# 1) VARCHAR2: Questo tipo di dati memorizzerà la stringa ma la lunghezza della stringa non è fissata al momento della dichiarazione. Il varchar2 ha una dimensione massima fino a 32767 byte. La larghezza massima di una colonna del database varchar2 è di 4000 byte.
Sintassi:
test VARCHAR2 (20): = 'SoftwareTest';
# 2) CARATTERE: Questo tipo di dati memorizzerà la stringa ma la lunghezza della stringa è fissata al momento della dichiarazione. Il carattere ha una dimensione massima fino a 32767 byte. La larghezza massima di una colonna del database char è 2000 byte.
Sintassi:
test CHAR2 (20): = 'SoftwareTest';
# 3) NCHAR: È simile a CHAR, ma memorizzerà solo il set di caratteri nazionali. NCHAR ha una dimensione massima fino a 32767 byte. La larghezza massima di una colonna del database NCHAR è di 2000 byte.
Sintassi:
prova NCHAR2 (20);
# 4) LUNGO: Ciò memorizzerà le stringhe di caratteri di lunghezza variabile. Il long ha una dimensione massima fino a 32760 byte.
Sintassi:
test LONG;
# 5) FILA LUNGA: Ciò memorizzerà i dati in formato binario o stringhe di byte. La riga lunga ha una dimensione massima fino a 32760 byte.
confronta due file in linux e trova le differenze
Sintassi:
prova FILA LUNGA;
# 6) ROWID: Questi sono gli identificatori fisici di una riga che punta all'indirizzo di una riga in una tabella normale.
# 7) UROWID: Questi sono gli identificatori universali delle righe.
# 8) NVARCHAR2: È simile a VARCHAR2, ma memorizzerà solo il set di caratteri nazionali. La larghezza massima di una colonna del database nvarchar2 è di 4000 byte.
# 9) VARCHAR: Questo è simile a VARCHAR2.
Sintassi:
test VARCHAR2 (20): = 'SoftwareTest';
Discutiamo ora i tipi di dati carattere di PL / SQL in formato tabulare.
Sl No. | Tipo di dati | Descrizione |
---|---|---|
7 | LONGROW | Questo è simile a LONG. Questi dati non vengono interpretati da PL / SQL. |
1 | VARCHAR2 | Viene utilizzato per memorizzare i dati dei caratteri che sono di lunghezza variabile. La dimensione è impostata per le variabili al momento della dichiarazione. Si consiglia sempre di utilizzare VARCHAR2 per un utilizzo efficace della memoria. |
Due | CHAR | Viene utilizzato per memorizzare i dati dei caratteri che hanno una lunghezza fissa. La dimensione è impostata per le variabili al momento della dichiarazione. Si consiglia sempre di utilizzare CHAR quando si devono utilizzare dati a dimensione fissa. |
3 | VARCHAR | Questo è simile a VARCHAR2. Si consiglia sempre di utilizzare VARCHAR durante l'implementazione del codice. |
4 | NCHAR | Viene utilizzato per memorizzare i dati dei caratteri che sono dati di caratteri nazionali di lunghezza fissa. Il set di caratteri è UTF 8 o UTF 16. Si consiglia sempre di convertire CHAR in NCHAR. Ma la conversione di NCHAR in CHAR può portare al troncamento dei dati. |
5 | NVARCHAR2 | Viene utilizzato per memorizzare i dati dei caratteri che sono dati di caratteri nazionali di lunghezza variabile. Questo è simile a VARCHAR2. Il set di caratteri è UTF 8 o UTF 16. Si consiglia sempre di convertire VARCHAR2 in NVARCHAR2. Ma la conversione da NVARCHAR2 a VARCHAR2 può portare al troncamento dei dati. |
6 | LUNGO | Viene utilizzato in un dizionario dati. Viene utilizzato principalmente nei dati del set di caratteri. |
Tipi di dati booleani
Questi tipi di dati di PL / SQL possono essere utilizzati per memorizzare valori logici. TRUE, FALSE e NULL sono i valori booleani.
SQL non dispone di tipi di dati BOOLEANI. Quindi dobbiamo evitarli nei seguenti scenari:
- Istruzioni PL / SQL generate da SQL.
- Funzioni predefinite di PL / SQL.
- Normali istruzioni SQL.
Sintassi:
test Boolean;
L'output della variabile di test sarà TRUE o FALSE a seconda di determinati criteri.
Tipi di dati data e ora
Questi tipi di dati vengono utilizzati per lunghezze costanti di data e ora. L'intervallo corretto di date va dal 1 ° gennaio 4712 a.C. al 31 dicembre 9999 d.C. e l'ora è definita in termini di secondi. Il formato della data integrato è GG-MON-AA che implica le doppie cifre assegnate per il giorno del mese, il nome del mese in breve, e poi le ultime due cifre dell'anno.
Una DATA è composta da secondi, minuti, giorno, ora, mese, anno e secolo. Ciascuno di questi campi ha un intervallo specifico definito come elencato di seguito:
- SECONDO: È definito nell'intervallo da 00 a 59,9.
- MINUTO: È definito nell'intervallo da 00 a 59.
- ORA: È definito nell'intervallo da 00 a 23.
- GIORNO: È definito nell'intervallo da 01 a 31.
- MESE: È definito nell'intervallo da 01 a 12.
- ANNO: È definito nell'intervallo da -4712 a 9999 (che non include 0).
- TIMEZONE_HOUR: È definito nell'intervallo da -12 a 14.
- TIMEZONE_MINUTE: È definito nell'intervallo da 00 a 59.
- TIMEZONE_REGION
- TIMEZONE_ABBR
Sintassi:
TIMESTAMP '1990-06-04 9:00:00 US/Pacific' TIMESTAMP '1990-06-04 01:30:00 US/Pacific PDT'
Qui, abbiamo descritto il fuso orario utilizzando i simboli. La specifica US / Pacific o PDT viene utilizzata per definire un particolare fuso orario. Il modulo PDT viene utilizzato principalmente poiché fornisce le linee guida durante il passaggio all'ora legale.
Tipi di dati LOB
Parliamo ora dei tipi di dati LOB che trattano enormi blocchi di dati costituiti da video, suoni, grafici, immagini e così via.
I tipi di dati LOB presentano numerosi vantaggi rispetto ai tipi di dati lunghi. Sono elencati di seguito:
- Long può contenere 2 GB mentre LOB può contenere 128 TB.
- Una tabella può avere una singola colonna di tipo LONG mentre possono esserci numerose colonne di tipo di dati LOB.
- Il tipo di dati LOB sta subendo miglioramenti e aggiornamenti costanti da Oracle mentre il tipo di dati LONG non sta avendo molti miglioramenti e aggiornamenti.
I tipi di dati LOB sono elencati di seguito:
- BFILE: Viene utilizzato per conservare i dati non strutturati in formato binario fuori dal database come file del sistema operativo.
- NCLOB: Viene utilizzato per contenere enormi dati NCHAR nel database.
- CLOB: Viene utilizzato per contenere enormi dati di tipo carattere nel database.
Sintassi:
Binary CLOB;
- BLOB: Viene utilizzato per contenere enormi dati binari nel database.
Sintassi:
BLOB binario;
Implementazione del codice con alcuni tipi di dati:
DECLARE m CHAR(20) := 'softwareTest!'; n VARCHAR2(30) := 'plsql'; o NCHAR(30) := 'plsql datatypes'; p NVARCHAR2(30) := 'plsql literals'; presentDt DATE:= SYSDATE; a INTEGER := 16; b NUMBER(20) := 11.2; c DOUBLE PRECISION := 14.7; BEGIN dbms_output.put_line('The char datatype is: ' || m); dbms_output.put_line('The varchar datatype is: ' || n); dbms_output.put_line('The nchar datatype is: ' || o); dbms_output.put_line('The nvarchar2 datatype is: ' || p); dbms_output.put_line('The current date is: ' || presentDt); dbms_output.put_line('The number a is: ' || a); dbms_output.put_line('The number b is: ' || b); dbms_output.put_line('The number c is: ' || c); END; /
L'output del codice precedente dovrebbe essere:
Variabili PL SQL
I nomi delle variabili PL / SQL seguono la convenzione di denominazione che consiste in caratteri alfanumerici non più di trenta. PL / SQL non fa distinzione tra maiuscole e minuscole e le parole chiave non devono essere utilizzate come variabili.
Il nome della variabile deve essere significativo e può essere seguito da un trattino basso (_), un numero o un dollaro ($).
Dichiarazione di variabili PL SQL
Le variabili di PL / SQL devono essere disponibili nell'area di dichiarazione o presenti in un pacchetto come variabile globale. PL / SQL riserva la memoria per le variabili e la posizione della memoria è definita dal nome della variabile.
Sintassi per la dichiarazione delle variabili:
variable_name (CONSTANT) datatype (NOT NULL) (:= | DEFAULT initial_value)
Qui, nome_variabile è un identificatore PL / SQL autentico e il tipo di dati può essere un tipo di dati PL / SQL definito dall'utente o confermato.
Implementazione del codice per la dichiarazione delle variabili:
DECLARE v_namis VARCHAR2(10); n_addressis NUMBER(10,3); BEGIN dbms_output.put_line('The name is: ' || v_namis); dbms_output.put_line('The address is: ' || n_addressis); END;
L'output del codice precedente dovrebbe essere:
Notare che, abbiamo menzionato sia la precisione che la dimensione del tipo di dati numerico. Questa è nota come dichiarazione vincolata. Questo tipo di dichiarazione consuma meno memoria.
Inizializzazione delle variabili PL / SQL
Per impostazione predefinita, PL / SQL accetta il valore di una variabile come NULL. Tuttavia, se non si desidera inizializzare una variabile con NULL, è possibile farlo utilizzando la parola chiave DEFAULT o l'operatore di assegnazione.
Sintassi:
num integer := 50; test varchar(40) DEFAULT 'Software Test Help';
Possiamo anche definire che una variabile non debba avere valore NULL menzionando il vincolo NOT NULL. Tuttavia, se viene utilizzato il vincolo NOT NULL, dobbiamo impostare un valore per la variabile.
Implementazione del codice con inizializzazione delle variabili:
DECLARE v_namis VARCHAR2(40) := 'softwareTest!'; n_couris VARCHAR2(30) := 'plsql'; BEGIN dbms_output.put_line('The value is: ' || v_namis); dbms_output.put_line('The value is: ' || n_couris); END; /
L'output del codice precedente dovrebbe essere:
Implementazione del codice con il concetto di assegnazione:
DECLARE v_namis VARCHAR2(40); n_couris VARCHAR2(30); BEGIN v_namis := 'softwareTest!'; n_couris := 'plsql'; dbms_output.put_line('The value is: ' || v_namis); dbms_output.put_line('The value is: ' || v_couris); END; /
Qui l'operatore di assegnazione (=) viene utilizzato per assegnare valori alla variabile.
L'output del codice precedente dovrebbe essere:
Ambito delle variabili PL / SQL
Un blocco PL / SQL può avere blocchi interni di codice. Se una variabile dichiarata fa parte del blocco interno non può essere utilizzata dal blocco esterno. Ma una variabile che fa parte del blocco esterno può essere manipolata nel blocco di codice interno.
Questi tipi di variabili sono descritti di seguito:
- Variabili globali: Le variabili dichiarate nel blocco o pacchetto esterno.
- Variabili locali: Le variabili che sono dichiarate nel blocco interno di codice e non sono accessibili dal blocco esterno.
Implementazione del codice con variabili globali e locali:
DECLARE -- Global variables val number := 10; BEGIN dbms_output.put_line('Global variable is : ' || val); DECLARE -- Local variables val number := 100; BEGIN dbms_output.put_line('Local variable is: ' || val); END; END; /
L'output del codice precedente dovrebbe essere:
notare che che l'output qui, la variabile globale è: 10 (a causa della variabile globale val) e 'La variabile locale è: 100 (a causa della variabile locale val).
Ancoraggio PL / SQL
Gli ancoraggi PL / SQL vengono definiti con la parola chiave% TYPE per dichiarare variabili con il tipo di dati connesso al tipo di dati di quella specifica colonna della tabella.
Snippet di codice con ancora:
DECLARE v_namis RESSIDENT.NAME%TYPE; n_addessis RESSIDENT.ADDRESS%TYPE; BEGIN NULL; END; /
Qui abbiamo una tabella RESIDENT e abbiamo a che fare con le colonne NAME e ADDRESS di quella tabella.
Costanti in PL / SQL
Una costante mantiene invariato il valore una volta dichiarato in tutto il programma.
Dichiarazione della costante PL / SQL
Il COSTANTE la parola chiave viene utilizzata per definire le costanti nel programma. Inizia con un valore predefinito che rimane lo stesso in tutto il programma.
Sintassi per la dichiarazione delle variabili:
const_name CONSTANT data type := val
Implementazione del codice con costante:
DECLARE -- Constant p constant number := 3.141592654; -- Radius declarations r number(10,1); a_circle number(10,3); BEGIN -- Area calculation r := 9.4; a_circle := p * r * r; -- Output in console dbms_output.put_line('Area of circle: ' || a_circle); END; /
L'output del codice precedente dovrebbe essere:
Letterali in PL SQL
Un valore booleano, numerico o stringa non definito da un identificatore PL / SQL viene chiamato letterale. I letterali distinguono tra maiuscole e minuscole e sono dei seguenti tipi, come elencato di seguito:
- Valori letterali booleani ( Per esempio - FALSA VERITÀ )
- Letterali carattere ( Per esempio - 's', '7', ')')
- Valori letterali stringa ( Per esempio - 'Test del software')
- Letterali numerici ( Per esempio - 78, 04, 6.3)
- DATA e ora letterali ( Per esempio - ’25 -05-2012 ’)
Domande e risposte frequenti
Q # 1) Quali sono i tipi di dati in PL SQL?
Risposta: I tipi di dati PL SQL sono compositi e scalari. I tipi di dati scalari possono contenere valori singoli come Character, Number, Boolean e DateTime. Mentre i tipi di dati compositi memorizzano più di un valore come raccolta e record.
Q # 2) Cos'è la variabile PL / SQL?
Risposta: Una variabile PL SQL è un nome che aiuta uno sviluppatore a memorizzare temporaneamente i dati durante l'esecuzione del programma. È un nome significativo assegnato all'area di archiviazione. Tutte le variabili in PL / SQL appartengono a un tipo di dati specifico.
Q # 3) Come passare un parametro di data in PL / SQL?
Risposta: Possiamo passare un parametro di data in PL / SQL con l'aiuto della parola chiave DATE. Segue un formato fisso come 'AAAA-MM-GG'.
Q # 4) Come si dichiara una costante in PL / SQL?
Risposta: Possiamo dichiarare una costante in PL / SQL con l'aiuto della parola chiave CONSTANT. Dopo COSTANTE, dobbiamo menzionare il valore che gli viene assegnato. Questo valore rimane fisso per tutto il programma.
Q # 5) Quanti tipi di letterali sono disponibili in PL / SQL?
Risposta: I tipi di letterali in PL / SQL sono Number, DateTime, Text e Integer.
Q # 6) Le variabili PL SQL fanno distinzione tra maiuscole e minuscole?
Risposta: Le variabili PL SQL, comprese le parole riservate, non fanno distinzione tra maiuscole e minuscole. Per esempio, INIZIARE e iniziare entrambi servono allo stesso scopo.
Conclusione
Una grande porzione di PL / SQL che tratta argomenti come i vari tipi di dati utilizzati e la loro importanza e le variabili di PL SQL dovrebbero essere comprensibili ora dopo aver letto questo tutorial.
Inoltre, abbiamo esplorato in dettaglio le costanti e i letterali PL SQL. Passa attraverso ciascuno degli argomenti uno per uno e lentamente lo padroneggerai. PL / SQL è utilizzato nei settori per lo sviluppo sia web che server al giorno d'oggi.
Nel prossimo tutorial, discuteremo dell'istruzione PL / SQL Insert, Update, Delete, Select e altri argomenti correlati.
Restiamo sintonizzati per una maggiore condivisione delle conoscenze.
Lettura consigliata
- Variabili Python
- Tipi di dati Python
- Tipi di dati e variabili C # con esempi
- Parametrizzazione dei dati JMeter mediante variabili definite dall'utente
- Tutorial sul data mart - Tipi, esempi e implementazione del data mart
- Tipi di dati C ++
- Variabili Java e loro tipi con esempi
- Differenze esatte tra SQL e NoSQL e sapere quando utilizzare NoSQL e SQL