Binarny format Oracle XML odpowiada formatowi „Compact Schema Aware XML Format” w skrócie CSX. Zakodowane dane przechowywane jako pole BLOB. Szczegóły dotyczące binarnego formatu XML dostępne są w dokumentacji Oracle (tutaj i tutaj ).
Rzeczywista wielkość pola danych zależy od parametrów przechowywania LOB kolumny XMLType. Np. if storage in row
opcja włączona wtedy małe dokumenty przechowywane bezpośrednio z innymi danymi i vsize()
zwraca odpowiednie wartości.
W rzeczywistości Oracle tworzy podstawową kolumnę BLOB z nazwą systemu, którą można znaleźć za pomocą zapytania user_tab_cols
widok:
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'
)
To zapytanie zwraca nazwę ukrytej kolumny systemowej, która wygląda jak SYS_NC00002$
.
Następnie można uzyskać rozmiar pól za pomocą zwykłej dbms_lob.getlength()
wywołanie przeciwko ukrytej kolumnie:
select dbms_lob.getlength(SYS_NC00002$) from t