Конвертировать из 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;
Другие вопросы по тегам