Конвертировать из VARCHAR2 в NCLOB (оракул)
Я получил сообщение столбца с data_type = VARCHAR2. Там уже хранятся некоторые данные. Я хочу, чтобы этот столбец был типа NCLOB. Code-Set для этого столбца должен быть UTF-8.
Я сделал следующее:
- добавил столбец
tempmessage
к моей таблице типа NCLOB - заполненный
tempmessage
с сообщением - переименовано сообщение в старое сообщение (чтобы я не использовал данные (пока он не работает))
- переименованный
tempmessage
к сообщению
Затем я опробовал свои интеграционные тесты и получил исключение: java.sql.BatchUpdateException: ORA-01400: вставка NULL в ("BATCH_LOG"."MESSAGEOLD") невозможна.
Что я сделал не так?
1 ответ
Решение
Исходный столбец был определен как NOT NULL
когда вы переименовали это в MESSAGEOLD
, это ограничение было сохранено. Вам нужно удалить ограничение NOT NULL из MESSAGEOLD
колонка:
ALTER TABLE foo MODIFY MESSAGEOLD NULL;