Oracle的超长文本字段问题
项目中,需要对数据库中的一个字段进行修改,以前是varchar2(4000)的一个类型,
但是这次字段的值的长度为7000以上
问题:使用PL/SQL直接将varchar修改为clob,提示无法修改:ORA-01439错误
解决:
1、要修改一个字段类型的时候,首先要将数据清空。
2、clob是一个特殊类型,不能直接从varchar转换为clob,需要使用Long类型,来做一个过渡(可以先修改为Long类型,然后从Long修改为clob . )
-------------------索引失效----------------------
上面我们对字段的类型,进行了修改,但是另一个问题又出来了,就是索引失效
问题: ORA-01502: 索引或这类索引的分区处于不可用状态
分析:这个错误是索引失效造成,必须重建索引
解决:
直接在PL/SQL中,运行下面语句,就可以了。
alter index PK_T_CMS_CATALOG rebuild;
PK_T_CMS_CATALOG 是报错的那个索引的名字