Если столбец выглядел в точности как $30
, то да - это строка, а не число, поэтому Oracle создал столбец VARCHAR2
. Если бы вы удалили форматирование в Excel до того, как сделали что-нибудь с Apex, это было бы NUMBER
.
Теперь да, как вы сказали:
- создать новый столбец
- обновить таблицу и установить новый столбец в цифру c значение старого столбца
- удалить старый столбец
- переименовать новый столбец в "старый / original "name
Или, альтернативно (из пункта № 3)
- очистить старый столбец
- изменить его тип данных
- move данные обратно в него
- перетащить новый столбец
Начиная с усечения varchar2(4000)
столбца до (100)
: сначала сократите его содержимое до 100 символов, затем измените его тип данных :
update your_table set that_column = substr(that_column, 1, 100);
alter your_table modify that_column varchar2(100);
Из-за таких проблем я предпочитаю
- предварительно создать целевую таблицу (с помощью команды
create table
), указав тип данных каждого столбца так, как я этого хочу - загрузить содержимое файла в такую таблицу