从VARCHAR2转换为NCLOB(oracle)

时间:2014-07-16 10:07:04

标签: oracle varchar2 nclob

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

我做了以下事情:

  • 在我的NCLOB类型表
  • 中添加了一列tempmessage
  • 使用消息
  • 填充tempmessage
  • 将消息重命名为old(因此我不使用任何数据(直到它工作))
  • tempmessage重命名为消息

然后我尝试了我的集成测试,我得到了例外: java.sql.BatchUpdateException:ORA-01400:无法插入NULL(“BATCH_LOG”。“MESSAGEOLD”)。

我做错了什么?

1 个答案:

答案 0 :(得分:0)

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

ALTER TABLE foo MODIFY MESSAGEOLD NULL;