Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Jak duży jest Oracle XMLType, gdy jest przechowywany jako BINARY XML?

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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Oracle INSERT do dwóch tabel w jednym zapytaniu

  2. Zresetuj pozycję kursora po aktualizacji zestawu wyników

  3. SQL, aby znaleźć słowa pisane wielkimi literami z kolumny

  4. zarządzanie wierszami historii w bazie danych

  5. Twórz i konfiguruj Oracle Linked Server w SQL Server