Latest news

Oracle: 7 tipi di dati principali

Benvenuti nel nostro articolo dedicato ai tipi di dati nativi nel database di Oracle, con un focus sulla versione 19c. In questo post, esploreremo a fondo gli Oracle Built-in Data Types, fornendovi una panoramica essenziale su come Oracle gestisce e classifica i dati.

Ogni valore all’interno di Oracle Database è associato a un tipo di dati specifico, che ne definisce le proprietà e il comportamento. Questa distinzione è cruciale, poiché influisce su come i valori vengono trattati e manipolati all’interno del database. Quando create una tabella, ad esempio, è fondamentale specificare il tipo di dati per ogni colonna, mentre nella definizione di funzioni o procedure memorizzate, dovrete fare altrettanto per gli argomenti.

In questo articolo, vi guideremo attraverso i vari tipi di dati predefiniti offerti da Oracle, illustrando le loro caratteristiche principali e le loro applicazioni. Scoprirete come ciascun tipo di dato può influenzare la progettazione e l’efficacia delle vostre strutture di database.

Vi invitiamo a leggere il nostro approfondimento per ottenere una comprensione chiara e completa di questi elementi fondamentali e per scoprire come sfruttarli al meglio nelle vostre operazioni quotidiane con Oracle Database. Buona lettura!

oracle 7 tipi di dati principali

I 7 tipi di dati principali

Ciascun valore manipolato da Oracle Database ha un tipo di dati. Il tipo di dati di un valore associa un insieme fisso di proprietà al valore. Tali proprietà fanno sì che Oracle tratti i valori di un tipo di dati diversamente dai valori di un altro.  

Nel momento in cui si va a creare una tabella c’è la necessità di specificare un tipo di dati per ognuna delle sue colonne. Quando invece si crea una funzione o una procedura memorizzata, serve specificare un tipo di dati per ognuno dei suoi argomenti. Queste tipologie di dati si occupano di definire il dominio dei valori che ogni colonna può contenere oppure ogni argomento che può avere. 

In questo articolo parleremo dei dati nativi nel database di Oracle, ovvero gli Oracle Built-in Data Types. Ci si riferisce alla versione 19c di Oracle 

I dati sono raggruppabili in 7 categorie principali: 

  • Character data type 
  • LONG data type 
  • Numeric data type 
  • RAW e LONG RAW data type 
  • Extended data type 
  • Large object (LOB) data type 
  • Datatime e interval data type 

Ora passiamo più nello specifico ad esaminare ognuno dei formati! 

  • Character data type 

Questa tipologia di dati è conosciuta per memorizzare i dati carattere (alfanumerici), ovvero parole e testo in formato libero, nel set di caratteri nazionale o nel set di caratteri del database. Non sono così restrittivi come gli altri tipi di dati e pertanto dispongono di meno proprietà.  

  • CHAR specifica una stringa di caratteri di lunghezza fissa nel set di caratteri del database.  Oracle assicura che tutti i valori che sono archiviati in una colonna CHAR possiedano una lunghezza specificata dalla dimensione nella semantica della lunghezza stabilita. Infatti, se si inserisce un valore inferiore della lunghezza della colonna, Oracle mette in bianco il valore a seconda della lunghezza della colonna. Invece, se si desidera inserire un valore troppo lunga per colonna, Oracle restituisce un errore. 
  • VARCHAR2 è un data type alfanumerico a lunghezza variabile e riesce a memorizzare fino a 4000 caratteri. Qualora si superi il limite che si è dichiarato, Oracle restituisce un errore.  
  • NCHAR è un data type Unicode che si occupa della memorizzazione dei caratteri Unicode. ha la lunghezza fissa e riesce a contenere fino a 2000 caratteri ma a runtime il peso totale non è in grado di superare i 2000 bytes. 
  • NVARCHAR2 indica una stringa di caratteri con una lunghezza variabile.  
  • LONG Data Type 

Le colonne LONG vengono supportate solamente per la compatibilità con le versioni precedenti, pertanto non è una buona pratica creare le tabelle con le colonne LONG. Si consiglia di adottare colonne LOB (CLOB, BLOB, NCLOB)! 

  • Numeric data type 

I dati numerici di Oracle database sono in grado di memorizzare numeri: 

  • Fissi 
  • Mobili positivi e negativi 
  • Zero 
  • Infinito 
  • Valori 

Ma quali sono questi dati? Vediamoli subito! 

  • NUMBER (p,s): permette la memorizzazione di valori numerici, positivi e negativi, dei numeri a virgola mobile e fissa. 

I parametri s e p, anch’essi numerici, indicano in modo rispettivo la scala e la precisione. La scala può avere un valore da -84 e 127, mentre la precisione un valore da 1 a 38. Se si omettono tali valori, Oracle considera il massimo valore per entrambi. 

È necessario seguire le seguenti regole per conoscere i limiti della memorizzazione per questo data type: 

  • La scala indica le cifre che vengono dopo la virgola, ossia quelle decimali; 
  • Il numero di cifre intere è dato dalla sottrazione p – s. 

Tuttavia, queste regole non sono sempre valide, ad esempio quando il valore della scala è maggiore del valore della precisione o è negativo. 

  • FLOAT: si tratta di un sottoinsieme del NUMBER. È possibile specificarlo con oppure senza precisione p, il quale ha lo stesso range di valori del NUMBER; non è possibile specificare la scala s ma è interpretabile partendo dal dato. 
  • BINARY_FLOAT, BINARY_DOUBLE: sono simili al tipo di dato NUMBER. I suddetti tipi utilizzano la precisione binaria anziché quella decimale. Questo dà la possibilità di avere calcoli aritmetici più veloci, oltre ad una dimensione più ridotta.  

È tuttavia importante ricordare che tali data type vengono usati per la memorizzazione delle approssimazioni di valori, ma non la loro reale rappresentazione! 

  • RAW and LONG RAW data type 

Le tipologie di dati RAW e LONG RAW memorizzano tutti quei dati che non richiedono di essere convertiti in maniera esplicita da Oracle Database quando sono spostati fra diversi sistemi. Tali tipologie di dati sono binarie o stringhe di byte.   

Per esempio, è possibile usare LONG RAW per l’archiviazione della grafica, dei documenti, array di dati binari o suoni, la cui interpretazione dipende dall’uso.  

Oracle suggerisce di convertire le colonne LONG RAW in colonne LOB binarie (BLOB). Le colonne LOB hanno meno restrizioni rispetto alle colonne LONG. RAW ha la lunghezza variabile. 

  • Extended data type 

Si può specificare la dimensione massima di 32767 byte per i tipi di dati VARCHAR2, RAW e NVARCHAR2. Puoi verificare se il database riesce a supportare tale dimensione massima impostando il parametro di inizializzazione MAX_STRING_SIZE nella seguente maniera: 

  • Se MAX_STRING_SIZE = EXTENDED il limite di dimensione equivale a 322767 byte per i dati VARCHAR2, RAW, e NVARCHAR2. 
  • Se invece MAX_STRING_SIZE = STANDARD, si vanno ad applicare i limiti di dimensione per le versioni che precedono Oracle database 12c: 2000 byte per i dati RAW e 4000 byte per NVARCHAR2 e VARCHAR2. Si tratta dell’impostazione predefinita. 
  • ​​Large object (LOB) data type 

I dati LOB che si integrano con BLOB, NLOB, CLOB e BFILE riescono ad archiviare dati non strutturati e di grandi dimensioni, tra cui dati spaziali, testo, video e immagine.  

  • BLOB: dati non strutturati, binari. Gli oggetti BLOB sono considerabili come flussi di bit senza semantica del set di caratteri.  
  • NCLOB: esso memorizza i dati Unicode. supporta sia i set di caratteri fissa e variabile ed entrsmbi adottano il national characterset.  
  • CLOB: memorizza dati di caratteri a byte singolo e multibyte. I set di caratteri a larghezza fissa e variabile sono supportati ed entrambi usano il set di caratteri del database.  
  • BFILE: permette di accedere ai LOB di file binari archiviati in file system all’esterno di Oracle Database.  
  • Datatime e interval data type 

Il tipo di dati di questo tipo è utile a memorizzare le date e le quantità di tempo all’interno di una tabella.  

I tipi di dati datatime sono: 

  • Date: memorizza le informazioni relative alla data e all’ora. Per ciascun valore DATE, Oracle memorizza: secondi, minuti, ora, giorno, mese, anno e anno.  
  • TIMESTAMP: è un’estensione di Date. Memorizza i secondi, i minuti, il giorno, il mese e l’anno di Date. è utile per fare la raccolta e la valutazione delle informazioni sulla data nelle aree geografiche, oltre a consentire di memorizzare i valori temporali precisi! 
  • INTERVAL YEAR TO MONTH: memorizza un periodo di tempo usando i campi MONTH e YEAR datatime. Il tipo di dati in questione è efficace per la rappresentazione della differenza fra due valori datatime quando soltanto i valori del mese e dell’anno sono rilevanti. 
cos'è un database oracle

Conclusioni

Abbiamo visto quali sono i 7 principali tipi di dati presenti in Oracle.

Se desideri imparare a gestire e a manipolare i dati in Oracle database in maniera efficace, il corso Oracle Database: Introduction to SQL è a caso tuo!

Al termine del corso sarai in grado di identificare i componenti strutturali di Oracle Database, creare e gestire report di dati e molto altro!

Dubbi o curiosità sulla formazione? Contattaci!

Hai bisogno di maggiori informazioni?

I nostri esperti IT sapranno certamente aiutarti!

My Agile Privacy

Questo sito utilizza cookie tecnici e di profilazione. 

Puoi accettare, rifiutare o personalizzare i cookie premendo i pulsanti desiderati. 

Chiudendo questa informativa continuerai senza accettare. 

Inoltre, questo sito installa Google Analytics nella versione 4 (GA4) con trasmissione di dati anonimi tramite proxy. 

Prestando il consenso, l'invio dei dati sarà effettuato in maniera anonima, tutelando così la tua privacy.