Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Quão grande é um Oracle XMLType quando armazenado como BINARY XML


O formato Oracle Binary XML corresponde ao "Compact Schema Aware XML Format" abreviado como CSX. Dados codificados armazenados como campo BLOB. Detalhes sobre o formato XML binário disponíveis na documentação da Oracle (aqui e aqui ).

O tamanho real do campo de dados depende dos parâmetros de armazenamento LOB da coluna XMLType. Por exemplo. if storage in row opção habilitada então pequenos documentos armazenados diretamente com outros dados e vsize() retorna valores apropriados.

Na realidade, o Oracle cria uma coluna BLOB subjacente com o nome do sistema, que pode ser encontrado consultando user_tab_cols Visão:
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'
  ) 

Esta consulta retorna o nome da coluna oculta do sistema que se parece com SYS_NC00002$ .

Depois disso, é possível obter o tamanho dos campos com dbms_lob.getlength() regular chamada contra a coluna oculta:
select dbms_lob.getlength(SYS_NC00002$) from t