从VARCHAR2转换为NCLOB(oracle)
我得到了一个数据为VARCHAR2的列消息。它已经存储了一些数据。我希望此列的类型为NCLOB。此列的代码集应为UTF-8 我做了以下工作:从VARCHAR2转换为NCLOB(oracle),oracle,varchar2,nclob,Oracle,Varchar2,Nclob,我得到了一个数据为VARCHAR2的列消息。它已经存储了一些数据。我希望此列的类型为NCLOB。此列的代码集应为UTF-8 我做了以下工作: 将列tempmessage添加到NCLOB类型的我的表中 用消息填充tempmessage 将消息重命名为消息旧(以便我不使用任何数据(直到它起作用)) 将tempmessage重命名为message 然后我尝试了我的集成测试,我得到了一个异常: java.sql.BatchUpdateException:ORA-01400:无法将NULL插入(“批处
- 将列
添加到NCLOB类型的我的表中tempmessage
- 用消息填充
tempmessage
- 将消息重命名为消息旧(以便我不使用任何数据(直到它起作用))
- 将
重命名为messagetempmessage
我做错了什么?原始列被定义为
非NULL
,当您将其重命名为MESSAGEOLD
时,此约束被保留。您需要从MESSAGEOLD
列中删除NOTNULL约束:
ALTER TABLE foo MODIFY MESSAGEOLD NULL;