【问题标题】:about hibernate with oracle关于使用 oracle 进行休眠
【发布时间】:2012-03-13 00:56:23
【问题描述】:

我正在使用 hibernate 将我的类映射到 oracle 数据库。但是当我尝试插入一些东西时,得到:

java.sql.BatchUpdateException: ORA-12899: value too large for column

我使用hibernate工具生成了这个表,有没有我可以手动更改列大小的设置? 我尝试在 hbm.xml 文件中设置 length="1000" 并在对象类中设置 @Column(length=1000),但这些都不起作用。

谢谢。

【问题讨论】:

  • 什么是列基类型?假设它是 String/varchar 是否正确?
  • 我的列是String,不会超过1000bytes。
  • 这里的 Oracle 最大大小:ss64.com/ora/syntax-datatypes.html。数据价值是多少?确定不想要 CLOB 或 BLOB?
  • 如果我不能扩展列大小,我想我会改为 clob,没有选择:)
  • 我认为列大小不是问题。你试图塞进它的价值有多大?这就是我阅读错误消息的方式。

标签: database oracle hibernate


【解决方案1】:

您的实际价值有多大?您可以考虑在 oracle 中使用 Lob 作为 varchar 之类的最大大小为 4000。如果您想这样做,可以在字段/设置器上使用 @Lob 注释。

【讨论】:

  • 谢谢你的建议,但是我的专栏不会超过1000,有必要改成lob吗?谢谢!
  • 您是否真的验证过数据库列的长度为 1000?不仅在您的代码中,而且在数据库本身中。
  • 我认为 oracle 可以为它保存 4000 个字节。现在我正在使用 clob :) 谢谢!
猜你喜欢
  • 2011-04-22
  • 1970-01-01
  • 2010-11-26
  • 2014-07-02
  • 2018-09-10
  • 1970-01-01
  • 1970-01-01
  • 2015-08-24
  • 2014-03-27
相关资源
最近更新 更多