gpt4 book ai didi

java - ORA-12899: 列的值太大,即使异常中的值较小

转载 作者:行者123 更新时间:2023-12-01 04:14:45 24 4
gpt4 key购买 nike

通过 EclipseLink 更新数据库中的实体时,我收到 ORA-12899 错误。异常内容如下:

捕获 RuntimeException:org.springframework.transaction.TransactionSystemException:无法提交 JPA 事务;嵌套异常是javax.persistence.RollbackException:异常 [EclipseLink-4002](Eclipse 持久性服务 - 2.1.1.v20100817-r8050):org.eclipse.persistence.exceptions.DatabaseException内部异常:java.sql.BatchUpdateException:ORA-12899:列“T_MONITORING”的值太大。“版本”(实际:295,最大值:255)

错误代码:12899查询:UpdateObjectQuery(MonitoringBE@7e6dc6aeMonitoringBE {id:17b50dcd-3184-4b47-998a-7c3a93a71695,主机名:HOSTNAME,releaseTimestamp:2013-10-17 12:04:01.578,javaVersion:1.6.0_24,软件版本:4.0。 30.SP401 -rc8,testID:6E1BC90F_549A_46AA_91F2_E9FF8A96BAEF,版本: psdz:4.8.1.0332013-20130522-1210; kis awl; kis awl:5.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0; :55 CEST 2013;4556499;3;Ausleitung zu SAb;8;8], 最后的回答: 2013-10-17 12:45:15.471, serverInstance: MyServer, 最后修改: 2013-10-17 12:45: 24.088})

列“VERSION”定义为 VARCHAR2(255 CHAR)。在这种情况下,我的问题是异常中的字符串不超过 255 个字符。怎么可能?异常的输出是否错误?更新查询未执行。

BusinessEntity (MonitoringBE) 是使用 setter 方法在普通 java 中进行操作的。然后在实体管理器(javax.persistence.EntityManager)中调用合并:

getEntityManager().merge( entity )

我在 Java 1.6.0.24 Glassfish 服务器上使用 Oracle 11g Enterprise (11.2.0.2.0) 和 EclipseLink 2.1.1。 Oracle中的字符集是AL32UTF8,应该可以存储所有类型的字符(4字节)。

有人可以帮忙吗?

最佳答案

如错误“实际:295”中所述

这意味着数据库层为该列获取 295 个字符,请确保查询语法和双引号、逗号等位于正确的位置

关于java - ORA-12899: 列的值太大,即使异常中的值较小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19539830/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com