今天用hibernate访问oracle数据库,发现一个问题;
IcaCaCert icaCaCert = IcaCaCert.findByCertSerialNumber(certSerial);
报异常: 流已关闭
看数据库发现有一个长文本字段的类型是:LONG(oracle特有的类型,相当于mysql的longtext)
于是就将该类型更改问clob类型( 不可逆 )
alter table ICA_CA_CERT modify SIGN_BUF_P7 clob;
再次访问没有流已关闭异常,但是又有新的异常: ITRUSCA.ICA_CA_CERT_USER_ID_IND这类索引的分区处于不可用状态
原来原先的表中有索引,我更改类型后索引错误;
重建索引,问题就可解决;
alter index ITRUSCA.ICA_CA_CERT_USER_ID_IND rebuild online;
本文讲述了使用Hibernate访问Oracle数据库过程中遇到的异常及解决方法。当尝试访问包含LONG类型的字段时,出现“流已关闭”异常。将字段类型更改为CLOB后,解决了此问题,但又出现了索引分区不可用的问题。通过重建索引最终解决问题。
5694

被折叠的 条评论
为什么被折叠?



