Oracle
 sql >> Database >  >> RDS >> Oracle

Quanto è grande un Oracle XMLType se archiviato come BINARY XML

Il formato Oracle Binary XML corrisponde a "Compact Schema Aware XML Format" abbreviato in CSX. Dati codificati memorizzati come campo BLOB. Dettagli sul formato XML binario disponibili nella documentazione Oracle (qui e qui ).

La dimensione reale del campo dati dipende dai parametri di archiviazione LOB della colonna XMLType. Per esempio. se storage in row opzione abilitata quindi piccoli documenti archiviati direttamente con altri dati e vsize() restituisce valori appropriati.

In realtà Oracle crea una colonna BLOB sottostante con il nome del sistema, che può essere trovata interrogando user_tab_cols visualizza:

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'
  ) 

Questa query restituisce il nome della colonna nascosta del sistema che assomiglia a SYS_NC00002$ .

Dopodiché è possibile ottenere la dimensione dei campi con dbms_lob.getlength() regolare chiamata contro colonna nascosta:

select dbms_lob.getlength(SYS_NC00002$) from t