Oracle Tipi di dati PL/SQL: booleano, numero, data [Esempio]

Che cosa sono i tipi di dati PL/SQL?

Tipi di dati in PL/SQL vengono utilizzati per definire il modo in cui i dati verranno archiviati, gestiti e trattati Oracle durante la memorizzazione e l'elaborazione dei dati. I tipi di dati sono associati al formato di archiviazione specifico e ai vincoli di intervallo. In Oracle, a ogni valore o costante viene assegnato un tipo di dati.

La differenza principale tra PL/SQL e SQL tipi di dati รจ che il tipo di dati SQL รจ limitato alla colonna della tabella mentre i tipi di dati PL/SQL vengono utilizzati in Blocchi PL/SQLMaggiori dettagli saranno forniti piรน avanti nel tutorial.

Di seguito รจ riportato lo schema dei diversi Oracle Tipi di dati PL/SQL:

Tipi di dati PL/SQL
Diversi tipi di dati in PL/SQL

Tipo di dati CARATTERE PL/SQL

Questo tipo di dati memorizza fondamentalmente caratteri alfanumerici in formato stringa.

I valori letterali devono essere sempre racchiusi tra virgolette singole durante l'assegnazione al tipo di dati CHARACTER.

Questo tipo di dati carattere รจ ulteriormente classificato come segue:

  • CHAR Tipo di dati (dimensione stringa fissa)
  • VARCHAR2 Tipo di dati (dimensione stringa variabile)
  • VARCHAR Tipo di dati
  • NCHAR (dimensione stringa fissa nativa)
  • NVARCHAR2 (dimensione stringa variabile nativa)
  • LUNGO e LUNGO CRUDO
Tipo di dati Descrizione Sintassi
CHAR Questo tipo di dati memorizza il valore della stringa e la dimensione della stringa viene fissata al momento della dichiarazione del file variabile.

  • Oracle verrebbe riempito di spazi vuoti la variabile se la variabile non occupasse l'intera dimensione che รจ stata dichiarata per essa, quindi Oracle allocherร  la memoria per la dimensione dichiarata anche se la variabile non la occupava completamente.
  • La limitazione delle dimensioni per questo tipo di dati รจ compresa tra 1 e 2000 byte.
  • Il tipo di dati CHAR รจ piรน appropriato da utilizzare laddove verrร  gestita la dimensione fissa dei dati.
grade CHAR;
manager CHAR (10):= 'guru99';

Spiegazione della sintassi:

  • La prima istruzione di dichiarazione ha dichiarato la variabile 'grade' del tipo di dati CHAR con la dimensione massima di 1 byte (valore predefinito).
  • La seconda dichiarazione dichiara la variabile "manager" del tipo di dati CHAR con la dimensione massima di 10 e assegna il valore "guru99" che รจ di 6 byte. Oracle in questo caso assegnerร  la memoria di 10 byte anzichรฉ di 6 byte.
VARCHAR2 Questo tipo di dati memorizza la stringa, ma la lunghezza della stringa non รจ fissa.

  • La limitazione delle dimensioni per questo tipo di dati รจ compresa tra 1 e 4000 byte per le dimensioni delle colonne della tabella e tra 1 e 32767 byte per le variabili.
  • La dimensione รจ definita per ciascuna variabile al momento della dichiarazione della variabile.
  • Ma Oracle allocherร  la memoria solo dopo che la variabile รจ stata definita, ovvero Oracle prenderร  in considerazione solo la lunghezza effettiva della stringa memorizzata in una variabile per l'allocazione della memoria anzichรฉ la dimensione fornita per una variabile nella parte della dichiarazione.
  • รˆ sempre opportuno utilizzare VARCHAR2 anzichรฉ il tipo di dati CHAR per ottimizzare l'utilizzo della memoria.
manager VARCHAR2(10) := โ€˜guru99';

Spiegazione della sintassi:

  • La dichiarazione di cui sopra ha dichiarato la variabile "manager" del tipo di dati VARCHAR2 con la dimensione massima di 10 e assegnato il valore "guru99" che รจ di 6 byte. Oracle in questo caso allocherร  memoria di soli 6 byte.
VARCHAR Questo รจ sinonimo del tipo di dati VARCHAR2.

  • รˆ sempre una buona pratica utilizzare VARCHAR2 invece di VARCHAR per evitare cambiamenti comportamentali.
manager VARCHAR(10) := โ€˜guru99';

Spiegazione della sintassi:

  • La dichiarazione di cui sopra ha dichiarato la variabile "manager" del tipo di dati VARCHAR con la dimensione massima di 10 e assegnato il valore "guru99" che รจ di 6 byte. Oracle in questo caso allocherร  memoria di soli 6 byte. (Simile a VARCHAR2)
NCHAR Questo tipo di dati รจ uguale al tipo di dati CHAR, ma il set di caratteri sarร  quello nazionale.

  • Questo set di caratteri puรฒ essere definito per la sessione utilizzando NLS_PARAMETERS.
  • Il set di caratteri puรฒ essere UTF16 o UTF8.
  • La limitazione della dimensione รจ 1-2000 byte.
native NCHAR(10);

Spiegazione della sintassi:

  • La dichiarazione di cui sopra dichiara la variabile 'nativa' del tipo di dati NCHAR con dimensione massima di 10.
  • La lunghezza di questa variabile dipende dal (numero di lunghezze) per byte come definito nel set di caratteri.
NVARCHAR2 Questo tipo di dati รจ uguale al tipo di dati VARCHAR2, ma il set di caratteri sarร  del set di caratteri nazionale.

  • Questo set di caratteri puรฒ essere definito per la sessione utilizzando NLS_PARAMETERS.
  • Il set di caratteri puรฒ essere UTF16 o UTF8.
  • La limitazione della dimensione รจ 1-4000 byte.
Native var NVARCHAR2(10):='guru99';

Spiegazione della sintassi:

  • L'istruzione di dichiarazione sopra riportata dichiara la variabile 'Native_var' di tipo di dati NVARCHAR2 con dimensione massima di 10.
LUNGO e LONGRAW Questo tipo di dati viene utilizzato per archiviare testo di grandi dimensioni o dati grezzi fino alla dimensione massima di 2 GB.

  • Questi sono utilizzati principalmente nel dizionario dei dati.
  • Il tipo di dati LONG viene utilizzato per memorizzare i dati del set di caratteri, mentre LONG RAW viene utilizzato per memorizzare i dati in formato binario.
  • Il tipo di dati LONG RAW accetta oggetti multimediali, immagini, ecc. mentre LONG funziona solo su dati che possono essere memorizzati utilizzando il set di caratteri.
Large_text LONG;
Large_raw LONG RAW;

Spiegazione della sintassi:

  • L'istruzione di dichiarazione sopra riportata dichiara la variabile 'Large_text' di tipo dati LONG e 'Large_raw' di tipo dati LONG RAW.

Nota: L'utilizzo del tipo di dati LONG non รจ consigliato da Oracle. รˆ invece preferibile il tipo di dati LOB.

Tipo di dati PL/SQL NUMBER

Questo tipo di dati memorizza numeri fissi o in virgola mobile fino a 38 cifre di precisione. Questo tipo di dati รจ utilizzato per lavorare con campi che conterranno solo dati numerici. La variabile puรฒ essere dichiarata con precisione e dettagli sulle cifre decimali o senza queste informazioni. I valori non devono essere racchiusi tra virgolette durante l'assegnazione per questo tipo di dati.

A NUMBER(8,2);
B NUMBER(8);
C NUMBER;

Spiegazione della sintassi:

  • Nella prima dichiarazione sopra, si afferma che la variabile 'A' รจ di tipo numerico con precisione totale 8 e cifre decimali 2.
  • La seconda dichiarazione dichiara che la variabile 'B' รจ un tipo di dato numerico con precisione totale 8 e nessuna cifra decimale.
  • La terza dichiarazione รจ la piรน generica, dichiara che la variabile 'C' รจ di tipo di dati numerico senza restrizioni di precisione o cifre decimali. Puรฒ contenere fino a un massimo di 38 cifre.

Tipo di dati BOOLEAN PL/SQL

Questo tipo di dati memorizza i valori logici. Oracle Il tipo di dati booleano rappresenta VERO o FALSO e viene utilizzato principalmente nelle istruzioni condizionali. Non รจ necessario racchiudere i valori tra virgolette durante l'assegnazione per questo tipo di dati.

Var1 BOOLEAN;

Spiegazione della sintassi:

  • In quanto sopra, la variabile 'Var1' รจ dichiarata come tipo di dati BOOLEAN. L'output del codice sarร  vero o falso in base alla condizione impostata.

Tipo di dati DATA PL/SQL

Questo tipo di dati memorizza i valori nel formato data, come data, mese e anno. Ogni volta che una variabile viene definita con il tipo di dati DATE insieme alla data, puรฒ contenere informazioni sull'ora e per impostazione predefinita le informazioni sull'ora sono impostate su 12:00:00 se non specificate. I valori devono essere racchiusi tra virgolette durante l'assegnazione per questo tipo di dati.

Lo standard Oracle il formato dell'ora per l'input e l'output รจ "GG-MON-AA" ed รจ nuovamente impostato su NLS_PARAMETERS (NLS_DATE_FORMAT) a livello di sessione.

newyear DATE:='01-JAN-2015';
current_date DATE:=SYSDATE;

Spiegazione della sintassi:

  • In quanto sopra, la variabile "newyear" รจ dichiarata come tipo di dati DATE e gli viene assegnato il valore di Jan 1st, data 2015.
  • La seconda dichiarazione dichiara la variabile current_date come tipo di dati DATE e le assegna il valore con la data corrente del sistema.
  • Entrambe queste variabili contengono le informazioni temporali.

Tipo di dati LOB PL/SQL

Questo tipo di dati viene utilizzato principalmente per archiviare e manipolare grandi blocchi di dati non strutturati come immagini, file multimediali, ecc. Oracle preferisce LOB invece del tipo di dati LONG poichรฉ รจ piรน flessibile del tipo di dati LONG. Di seguito sono riportati i vantaggi principali di LOB rispetto al tipo di dati LONG.

  • Il numero di colonne in una tabella con tipo di dati LONG รจ limitato a 1, mentre una tabella non ha restrizioni sul numero di colonne con tipo di dati LOB.
  • Lo strumento di interfaccia dati accetta il tipo di dati LOB della tabella durante la replica dei dati, ma omette la colonna LONG della tabella. Queste colonne LONG devono essere replicate manualmente.
  • La dimensione della colonna LONG รจ 2 GB, mentre LOB puรฒ archiviare fino a 128 TB.
  • Oracle migliora costantemente il tipo di dati LOB in ciascuna delle sue versioni in base ai requisiti moderni, mentre il tipo di dati LONG รจ costante e non riceve molti aggiornamenti.

Quindi, รจ sempre bene usare il tipo di dati LOB invece del tipo di dati LONG. Di seguito sono riportati i diversi tipi di dati LOB. Possono memorizzare fino a una dimensione di 128 terabyte.

  1. BLOB
  2. CLOB e NCLOB
  3. BFILE
Tipo di dati Descrizione Sintassi
BLOB Questo tipo di dati memorizza i dati LOB nel formato di file binario fino alla dimensione massima di 128 TB. Questo non memorizza i dati in base ai dettagli del set di caratteri, in modo che possa memorizzare i dati non strutturati come oggetti multimediali, immagini, ecc.
Binary_data BLOB;

Spiegazione della sintassi:

  • In quanto sopra, la variabile "Binary_data" รจ dichiarata come BLOB.
CLOB e NCLOB Il tipo di dati CLOB memorizza i dati LOB nel set di caratteri, mentre NCLOB memorizza i dati nel set di caratteri nativi. Poichรฉ questi tipi di dati utilizzano la memorizzazione basata su set di caratteri, non possono memorizzare dati come contenuti multimediali, immagini, ecc. che non possono essere inseriti in una stringa di caratteri. La dimensione massima di questi tipi di dati รจ 128 TB.
Charac_data CLOB;

Spiegazione della sintassi:

  • In quanto sopra, la variabile "Charac_data" รจ dichiarata come tipo di dati CLOB.
BFILE
  • BFILE sono i tipi di dati che memorizzano i dati in formato binario non strutturati all'esterno del database come file del sistema operativo.
  • La dimensione di BFILE รจ relativa a un sistema operativo limitato e sono file di sola lettura e non possono essere modificati.

Sintesi

Abbiamo trattato i diversi tipi di dati semplici disponibili in PL / SQL insieme alla loro sintassi. Impareremo i tipi di dati complessi in altri argomenti.

Riassumi questo post con: