0

我收到一条 data_type = VARCHAR2 的列消息。它已经存储了一些数据。我希望此列的类型为 NCLOB。此列的代码集应为 UTF-8。

我做了以下事情:

  • tempmessage在我的 NCLOB 类型的表中添加了一列
  • 充满tempmessage讯息
  • 将消息重命名为旧消息(这样我就不会使用任何数据(直到它起作用))
  • 重命名tempmessage为消息

然后我尝试了我的集成测试,我得到了异常:java.sql.BatchUpdateException: ORA-01400: Insert of NULL into ("BATCH_LOG"."MESSAGEOLD") not possible。

我做错了什么?

4

1 回答 1

0

原始列定义为NOT NULL,当您将其重命名为 时MESSAGEOLD,此约束被保留。您需要从MESSAGEOLD列中删除 NOT NULL 约束:

ALTER TABLE foo MODIFY MESSAGEOLD NULL;
于 2014-07-16T10:12:03.837 回答