Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Oracle (https://www.clubdelphi.com/foros/forumdisplay.php?f=22)
-   -   Saber el tamaño de un registro (https://www.clubdelphi.com/foros/showthread.php?t=65139)

winzo 23-11-2009 23:42:13

Saber el tamaño de un registro
 
Tengo una tabla con ciertos campos, imaginemos algo asi:

Código:

Cve_Usuario  Integer
Des_Usuario  VarChar2(100)
fec_algo        Date



Y asi por el estilo, mi pregunta es, como puedo saber el tamaño en bytes que ocuparía un registro?

Había una instrucción de oracle, pero la olvide, alguien sabe?

ElKurgan 24-11-2009 11:07:17

Si quieres saber la longitud que ocupan los datos de cada campo te vale con la función Length(campo), de forma que el tamaño del registro sería:

select length(campo1) + length(campo2) + length(.... from tabla

Si lo que quieres es ver el tamaño en bytes con los que Oracle guarda internamente los datos, tendrías que utilizar la función VSIZE:

select vsize(campo1) + vsize(campo2) + vsize(.... from tabla

Una curiosidad: Una fecha ocupa 8 con length (independientemente de como se represente en pantalla; por ejemplo, puedes ver 25/12/2009 pero en realidad oracle cuenta sólo 8 dígitos), pero ocupa 7 con VSIZE

Otra curiosidad: Tengo un campo de tipo integer llamado estado; Cuando estado vale "1" esto es lo que me devuelve la select:

select Estado, length(Estado), vsize(Estado) from mitabla

Estado Length(Estado) vsize(Estado)
------- --------------- -------------
0 1 1
1 1 2

Un saludo


La franja horaria es GMT +2. Ahora son las 20:52:31.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi