Почему столбец ora-archive-state представляет собой varchar2 4000 символов?

Может кто-нибудь объяснить, почему Oracle сделал столбец ora-archive-state varchar2 из 4000 символов? При использовании функции архивирования в базе данных Oracle 12c, когда столбец равен 0, запись видна. При любом значении, отличном от 0, запись скрыта.

Какова цель наличия дополнительных 3999 символов, когда простая установка столбца в 1 достигает цели? Я сомневаюсь, что Oracle просто тратит место впустую.


person user1286322    schedule 16.07.2020    source источник


Ответы (1)


Потому что он позволяет по-разному помечать заархивированные строки: вы можете обновить ORA_ARCHIVE_STATE до разных значений, например: to_char(systimestamp,'yyyy-mm-dd hh24:mi:ssxff'), чтобы установить его на дату архивирования. А позже вы сможете анализировать архивные записи по этому столбцу.

Я сомневаюсь, что Oracle просто тратит место впустую.

Varchar2 не тратит место впустую. Это строка символов переменной длины. Т.е. varchar2(4000b) не означает, что он будет использовать 4000 байт, или varchar2(4000c) ~ символы. Это просто максимально допустимая длина столбца

person Sayan Malakshinov    schedule 16.07.2020