In Oracle 11g, the process of adding a new column with a default value has been greatly optimized. If the new column is specified as NOT NULL, the default value for this column is stored in the data dictionary and is no longer required for the default value for the column, which will be stored for all records in the table, so it is no longer required to update each record with the default value. Such optimization significantly reduces the time during which the table is locked exclusively during the operation.
alter table <tab_name> add(<col_name> <data_type> default <def_val> not null)
, , , , . , NOT NULL .