Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/tfs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从VARCHAR2转换为NCLOB(oracle)_Oracle_Varchar2_Nclob - Fatal编程技术网

从VARCHAR2转换为NCLOB(oracle)

从VARCHAR2转换为NCLOB(oracle),oracle,varchar2,nclob,Oracle,Varchar2,Nclob,我得到了一个数据为VARCHAR2的列消息。它已经存储了一些数据。我希望此列的类型为NCLOB。此列的代码集应为UTF-8 我做了以下工作: 将列tempmessage添加到NCLOB类型的我的表中 用消息填充tempmessage 将消息重命名为消息旧(以便我不使用任何数据(直到它起作用)) 将tempmessage重命名为message 然后我尝试了我的集成测试,我得到了一个异常: java.sql.BatchUpdateException:ORA-01400:无法将NULL插入(“批处

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

我做了以下工作:

  • 将列
    tempmessage
    添加到NCLOB类型的我的表中
  • 用消息填充
    tempmessage
  • 将消息重命名为消息旧(以便我不使用任何数据(直到它起作用))
  • tempmessage
    重命名为message
然后我尝试了我的集成测试,我得到了一个异常: java.sql.BatchUpdateException:ORA-01400:无法将NULL插入(“批处理日志”。“MESSAGEOLD”)


我做错了什么?

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

ALTER TABLE foo MODIFY MESSAGEOLD NULL;