Oracle
 sql >> Base de données >  >> RDS >> Oracle

Quelle est la taille d'un Oracle XMLType lorsqu'il est stocké en tant que XML BINARY

Le format Oracle Binary XML correspond au "Compact Schema Aware XML Format" abrégé en CSX. Données codées stockées sous forme de champ BLOB. Détails sur le format XML binaire disponibles dans la documentation Oracle (ici et ici ).

La taille réelle du champ de données dépend des paramètres de stockage LOB de la colonne XMLType. Par exemple. si storage in row option activée puis petits documents stockés directement avec d'autres données et vsize() renvoie les valeurs appropriées.

En réalité, Oracle crée une colonne BLOB sous-jacente avec le nom du système, qui peut être trouvée en interrogeant user_tab_cols afficher :

select table_name, column_name, data_type 
from user_tab_cols 
where 
  table_name = 'T' and hidden_column = 'YES'
  and
  column_id = (
      select column_id 
      from user_tab_cols 
      where table_name = 'T' and column_name = 'X'
  ) 

Cette requête renvoie le nom de la colonne cachée du système qui ressemble à SYS_NC00002$ .

Après cela, il est possible d'obtenir la taille des champs avec dbms_lob.getlength() normal appel contre colonne masquée :

select dbms_lob.getlength(SYS_NC00002$) from t