Oracle не поддерживает добавление столбцов в середине таблицы, а только добавление их в конец. Дизайн вашей базы данных и функциональность приложения не должны зависеть от порядка столбцов в схеме базы данных. В конце концов, вы всегда можете указать порядок в своем операторе выбора.
Однако, если по какой-то причине у вас просто должен быть новый столбец в середине таблицы, есть обходной путь.
CREATE TABLE tab1New AS SELECT 0 AS col1, col1 AS col2 FROM tab1;
DROP TABLE tab1 PURGE;
RENAME tan1New to tab1;
Где SELECT 0 AS col1
- это ваш новый столбец, а затем вы при необходимости указываете другие столбцы из исходной таблицы. Поместите SELECT 0 AS col1
в нужное место в нужном вам порядке.
После этого вы можете захотеть запустить оператор alter table для столбца, чтобы убедиться, что это именно тот тип данных, который вам нужен.