¿Por qué Oracle agrega una columna oculta aquí?

Recientemente migramos un sistema de cliente a Oracle 12c y a la última versión de nuestro producto. Este proceso incluye ejecutar una serie de scripts de migración que en su mayoría agregan o cambian tablas. Notamos que agregar una columna a una tabla y al mismo tiempo proporcionar un valor predeterminado crea una columna oculta adicionalSYS_NC00002$.

Debería poder reproducir esto con el siguiente código

create table xxx (a integer);
alter table xxx add (b integer default 1);

select table_name, column_name, data_type, data_length, column_id, default_length, data_default from user_tab_cols where table_name='XXX';

Table_Name|column_Name |data_Type|data_Length|column_Id|default_Length|data_Default|
------------------------------------------------------------------------------------
XXX       |A           |NUMBER   |         22|        1|              |            |
XXX       |SYS_NC00002$|RAW      |        126|         |              |            |
XXX       |B           |NUMBER   |         22|        2|             1|1           |

Cuando relleno la tabla y miro los valores en esa columna oculta, son todos iguales:

select distinct SYS_NC00002$ from xxx;

Sys_Nc00002$|
-------------
01          |

Sorprendentemente, cuando no configuro el valor predeterminado de inmediato, pero en una declaración adicional, no se crea una columna oculta adicional.

create table xxy (a integer);
alter table xxy add (b integer);
alter table xxy modify b default 1;

select table_name, column_name, data_type, data_length, column_id, default_length, data_default from user_tab_cols where table_name='XXY';

Table_Name|column_Name|data_Type|data_Length|column_Id|default_Length|data_Default|
-----------------------------------------------------------------------------------
XXY       |A          |NUMBER   |         22|        1|              |            |
XXY       |B          |NUMBER   |         22|        2|             1|1           |

¿Alguien puede explicar para qué sirve esta columna oculta y por qué solo se crea en el primer ejemplo, pero no en el segundo?

Respuestas a la pregunta(1)

Su respuesta a la pregunta