0

我在更新 Oracle xml_type 列时遇到问题。

我使用 find 方法选择条目

myobj = find(id)

然后尝试使用以下方法更新它:

myobj.update_attribute(:the_column_name, new_content)

该方法完成且没有任何错误,但该列未更新。

我验证其他属性可以使用相同的方法调用正确更新:

myobj.update_attributes(:the_column_name=>new_content, status=>2)

我还验证了当我这样做时:

ModelClassName.update_all(:the_xml_colum_name=>new_content)

这些行实际上确实得到了更新。这让我很困惑。update_all 方法可以更新 xml 列,但单行上的 update_attributes 不会(虽然它正确更新了非 xml 属性)。

我将 jruby 与 activerecord-oracle_enhanced-adapter (1.4.2) 和 Oracle 11g 一起使用。

4

1 回答 1

0

我对此没有任何解释,但是当我在没有先选择的情况下执行 update_where 时,它​​似乎可以工作:

 ModelClassName.where(<condition>).update_all(:the_xml_column_name => new_content)
于 2013-07-19T17:56:39.533 回答