Изменяем LONG datatype в таблице на Oracle Database
- При работе с базой данных, мы можем получить ошику
alter table MY_SCHEMA.MY_TABLE move tablespace MY_TABLESPACE;
*
ERROR at line 1:
ORA-00997: illegal use of LONG datatype
LONG datatype больше не поддерживается в Oracle Database и нужно конвертировать в LOB.
- Находим поля с типом LONG и смотрим, какие данные есть в таблице
DESCRIBE MY_SCHEMA.MY_TABLE;
SELECT * FROM MY_SCHEMA.MY_TABLE;
- Делаем копию этой таблицы.
CREATE TABLE MY_SCHEMA.MY_TABLETMP
AS
SELECT ID, TO_LOB(COLUMN_WITH_LONG) AS COLUMN_WITH_LONG, DATA FROM MY_SCHEMA.MY_TABLE a;
- Смотрим правильно ли произошла конвертация
DESCRIBE MY_SCHEMA.MY_TABLETMP;
SELECT * FROM MY_SCHEMA.MY_TABLETMP;
- Конвертируем колонку в таблице
alter table MY_SCHEMA.MY_TABLE modify (COLUMN_WITH_LONG clob);