sql >> Databasteknik >  >> RDS >> Oracle

Hur stor är en Oracle XMLType när den lagras som BINÄR XML

Oracle Binary XML-format motsvarar "Compact Schema Aware XML Format" förkortat CSX. Kodad data lagrad som BLOB-fält. Detaljer om binärt XML-format tillgängligt från Oracle-dokumentationen (här och här ).

Den verkliga storleken på datafältet beror på LOB-lagringsparametrar för XMLType-kolumnen. T.ex. om storage in row alternativet aktiverat sedan små dokument lagrade direkt med andra data och vsize() returnerar lämpliga värden.

I verkligheten skapar Oracle underliggande BLOB-kolumn med systemnamn, som kan hittas genom att fråga user_tab_cols visa:

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

Denna fråga returnerar systemets dolt kolumnnamn som ser ut som SYS_NC00002$ .

Efter det är det möjligt att få storlek på fält med vanliga dbms_lob.getlength() anrop mot dold kolumn:

select dbms_lob.getlength(SYS_NC00002$) from t


  1. Genomsnittlig tid för att svara på meddelande

  2. Union som orsakar ett ORA-01790:-uttryck måste ha samma datatyp som motsvarande uttryck

  3. PostgreSQL - Uppdaterade tabellen i en funktion som jag skapade och nu har ordningen på raderna i tabellen ändrats

  4. Ta bort kommatecken med php från mysql