Taille champs

De knowledge
Aller à la navigation Aller à la recherche

Taille d'un champ dans une table

Methode par l'exemple

On demande a Oracle le "dump" d'une valeur du type en question:

SELECT dump(x) FROM (SELECT 123456789123456.12 x FROM dual);

pour avoir la taille d'un numeric (15,2)

Typ=2 Len=10: 200,2,24,46,68,90,13,35,57,13

Taille = 10 octets puis suit la liste des valeurs des 10 octets représentants le chiffre 123456789123456.12.===


Sur une colonne existante

On veut connaître la taille (maximale) de la colonne "NCOL" de la table "NTAB".

select DATA_LENGTH from all_tab_columns where table_name='NTAB' and COLUMN_NAME='NCOL';

Calcul théorique

En fait, puisque la taille est variable on calcule la taille "approximative" on peut l'évaluer par:

bytes = ROUND((num_digits/2) + .5), 0) + 1

Dans le case du nombre 123456789123456.12 (17 digits) on obtient aussi 10!