Демонстрационная таблица:
create table people (name, gender, marital_status)
as
select 'SAM', 'M', 'Single' from dual union all
select 'BOB', 'M', 'Married' from dual union all
select 'JEN', 'F', 'Single' from dual union all
select 'BOB', 'M', 'Married' from dual;
Добавьте столбец идентификаторов (требуется Oracle 12.1 или новее):
alter table people add id integer generated always as identity;
Если вы хотите, измените порядок словаря так, чтобы новый столбецпоявляется первым при описании таблицы (также требуется Oracle 12.1):
begin
for r in (
select column_name from user_tab_columns c
where c.table_name = 'PEOPLE'
and c.column_name <> 'ID'
order by c.column_id
)
loop
execute immediate 'alter table people modify ' || r.column_name || ' invisible';
execute immediate 'alter table people modify ' || r.column_name || ' visible';
end loop;
end;
/