最近在项目中遇到了这样一个问题。当数据表存在“clob”类型的数据项时rails框架局部更新数据时(注:更新时没有修改任何数据)。
系统就会出现以下提示:ORA-22920: row containing the LOB value is not locked
以前从来没有遇到过这样的问题。。经过一番折腾总算是找到解决的方法了。。
方法一:可以在environment.rb文件中增加下面这句:
ActiveRecord::Base.partial_updates = false
解析:
将rails2.1框架的局部更新特性完全关闭,也就是无论你是否有修改,都会去重新写一遍数据库。。在这个文件中增加这一列,是对项目中所有的模块都设置了。这样对一些不存在clob弄数据的地方不太合适。也会影响到性能(一个项目中clob型的数据必竞是少之又少的,这样做得不尝失)。
方法二:在相应的功能的model文件中增加以下代码:
class 功能模块 < ActiveRecord::Base
.....
self.partial_updates = false
......
end
这样就可以必免方法一中的问题。
系统就会出现以下提示:ORA-22920: row containing the LOB value is not locked
以前从来没有遇到过这样的问题。。经过一番折腾总算是找到解决的方法了。。
方法一:可以在environment.rb文件中增加下面这句:
ActiveRecord::Base.partial_updates = false
解析:
将rails2.1框架的局部更新特性完全关闭,也就是无论你是否有修改,都会去重新写一遍数据库。。在这个文件中增加这一列,是对项目中所有的模块都设置了。这样对一些不存在clob弄数据的地方不太合适。也会影响到性能(一个项目中clob型的数据必竞是少之又少的,这样做得不尝失)。
方法二:在相应的功能的model文件中增加以下代码:
class 功能模块 < ActiveRecord::Base
.....
self.partial_updates = false
......
end
这样就可以必免方法一中的问题。