lunedì 8 ottobre 2012

Oracle - char e byte nella dichiarazione di una colonna varchar2

[se non leggi bene l'articolo vai sul blog http://vincenzomiccolis.blogspot.it/ o sulla versione mobile http://bit.ly/AeHvgL

Ogni tanto mi capita di parlare di argomenti un po' più tecnici. Oggi rispondo ad un quesito su Oracle.

Ciao Vincent, ho una domanda relativa alla dichiarazione dei tipi sulle colonne delle tabelle in Oracle. Ho visto che ogni tanto parli dell'argomento ed eccomi quà.
bloB

Ciao bloB e grazie per il tuo intervento.
L'argomento è molto interessante.

Cerco di spiegare in parole semplici. Quando si costruisce una tabella si deve dichiarare il tipo per ogni colonna. Ad esempio...

CREATE TABLE stipendi 
(
importo number(18,3),
cognome varchar2(100),
nome varchar2(100)
)

Nel dichiarare una colonna di tipo varchar2() si deve obbligatoriamente indicare specificamente la dimensione massima della colonna.


cognome varchar2(100),


Per default la dimensione dovrebbe essere in Byte anche se dipende essenzialmente dalla configurazione del DB (vedi Oracle Data Types | SS64.cominit.ora SpFile Parameters | SS64.com [EN] sotto in Link utili). In questo scenario le due dichiarazioni seguenti dovrebbero coincidere


CREATE TABLE stipendi 
(
importo number(18,3),
cognome varchar2(100),
nome varchar2(100)
)



CREATE TABLE stipendi 
(
importo number(18,3),
cognome varchar2(100 byte),
nome varchar2(100 byte)
)


In un characterset possono essere compresi caratteri che per la loro rappresentazione richiedano più di un byte (ad es.UTF8). In questi casi può rivelarsi utile dichiarare il numero di caratteri che si vuole gestire a prescindere dai byte.


CREATE TABLE stipendi 
(
importo number(18,3),
cognome varchar2(100 char),
nome varchar2(100 char)
)


Si badi che il limite massimo delle colonne varchar2 rimane di 4000 Byte, quindi non necessariamente 4000 caratteri. Nella versione 10g il dimensionamento con la clausola char determina un aumento a 3 byte per carattere.


Alla prossima!
Se il post ti piace condividilo su Facebook
Tieni d'occhio questo post e i suoi commenti: iscriviti nella parte destra del blog.
Per qualsiasi dubbio, critica, segnalazione scrivimi a vm_tempbox-perparlarediweb[at]yahoo.it
Ricevi gratuitamente tutti i miei aggiornamenti del blog direttamente dal feed RSS ed in email.
Visita la mia pagina su Facebook e diventa fan. Segui @vincentmiccolis su Twitter dove oltre ai link agli articoli del blog condivido i link delle mie letture in tempo reale.


Siti consultati:
html.it/
ss64.com/ [EN]
1keydata.com/
stackoverflow.com/  [EN]

Alla prossima!
Per leggere i post con più chiarezza ed un allineamento adattato agli schermi più piccoli di iPhone e smartphone usa la versione mobile. Vai a http://bit.ly/AeHvgL oppure clicca/scansiona il QR code quì sotto.



DISCLAIMER: Il contenuto dei miei articoli è reso disponibile così com'è. Per Parlare di Web non offre alcuna garanzia sui contenuti che sono forniti a solo scopo di intrattenimento e/o didattico con l'obiettivo di fare da spunto di riflessione per il lettore proponendo idee, concetti e recensioni di prodotti e servizi tecnologici. Il blog Per Parlare di Web non si assume alcuna responsabilità per ogni conseguenza dannosa che possa risultare al lettore dall'adozione di indicazioni descritte nei nostri articoli e nelle nostre guide hardware e software.

Nessun commento:

Posta un commento

Nel rispetto della normativa sul trattamento dei dati personali (GDPR n. 679/2016) puoi scegliere di commentare questo post usando il tuo account Google, oppure avvalerti delle opzioni Anonimo o Nome/URL disponibili dal menù a tendina in questo form. In ogni caso, nessuno dei tuoi dati personali verrà usato dall'amministratore di questo blog né venduto a terzi. Per tutelare la sicurezza dei lettori i commenti postati dagli utenti che contengano link cliccabili saranno cancellati. Spunta Inviami notifiche per continuare a seguire i commenti del post.

Potrebbe interessarti...
Ultimo articolo pubblicato:
Netflix per 12 mesi a 2 euro - È una TRUFFA!


Ideale per la scuola media! ad 
Lenovo Tab M10 FHD Plus (2nd Gen) Tablet - Display 10.3" FHD (MediaTek Helio P22T,Storage 64GB Espandibile fino ad 1TB,RAM 4GB,WiFi+Bluetooth,4G LTE,2 Speaker,Android 9 Pie) Grigio – Esclusiva Amazon