- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我尝试使用 PreparedStatement.executeBatch()
执行批处理查询,并 try catch BatchUpdateException
中发生的任何异常。但我在调用 BatchUpdateException.getUpdateCounts()
时得到一个空白数组。
下面是我的代码:
int[] updateCounts = null;
PreparedStatement stmt = null;
// some logic to set the stmt and create the SQL query
try {
if (count % 100 == 0)
{
updateCounts = stmt.executeBatch();
}
} catch (BatchUpdateException bu)
{
updateCounts = bu.getUpdateCounts();
}
当发生异常时,我得到一个空的updateCounts
数组...为什么?
注意:
批量更新异常 -
SystemErr R java.sql.BatchUpdateException: ORA-01400: cannot insert NULL into ("TABLE_ABC"."AMOUNT")
代码从其中读取数据的 CSV 文件...预计第三条记录中出现错误
Asof_Date,Price_Date,Amount
12/15/2015,11/26/2014,-2646.937686
12/15/2015,11/28/2014,5053.611471
12/15/2015,1/22/2015,
12/15/2015,1/23/2015,
最佳答案
嗯,根据javadoc ,您会得到一个 int 来表示每个成功执行的语句的更新计数,因此空数组表明批处理中的第一个语句失败。
Retrieves the update count for each update statement in the batch update that executed successfully before this exception occurred.
正如您从异常中可以看出的那样,CSV 中的空值导致了失败。因此,您要么允许该列为 NULL,要么检查是否为 null 并插入 0。
至于 updateCounts:如果您的批处理在一个事务中运行(这是有道理的),那么所有插入都将在错误时滚动 nack - 导致什么也不做。
关于java - JDBC - Oracle - BatchUpdateException.getUpdateCounts() 返回空白数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34617229/
下面的代码给出了一个BatchUpdateException,我不知道为什么。 public void createContactmoment(Document document) { try
当我由于违反唯一约束而出现 BatchUpdateException 时,是否有办法确定批插入中的哪条记录违反了规定?例如,假设我正在通过调用 PreparedStatement.executeBat
我有一个 java 程序,可以将文本文件中的数千行数据读取到数据库中。它使用语句批处理一次插入几千行。 如果任何行无法更新,我将继续尝试其余行,直到列表末尾。之后,我返回并检查哪些行失败,然后将这些行
这个问题可能很愚蠢,但我面临着这种情况: 我有一个每次用户发送请求时都会填充的表,我在插入的最后一行中的一个字段(日期)上使用日期。问题是,我插入的最后一行总是会尝试插入自身,因为它在我正在考虑的范围
我正在使用批处理在数据库中插入大量记录。如果其中任何一个失败,我只会在更新计数数组中获得记录号(和最后一条异常消息)。 是否有可能得到所有错误的原因? 我正在使用 Java7 和 Mysql 连接器
我从 stmt.executeBatch() 语句中得到这个 BatchUpdateException: BatchUpdateException: A resultset was created f
我有许多映射数据流在过去几个月中一直定期运行,其中一些从昨天开始出现故障。 数据流模式是 - Source: 2 Azure SQL DB tables, a lookup table in Syna
我对 Hybris 非常陌生,我正在开发 6.2 版本。经过一些尝试后,我决定创建一个新的空扩展来工作。因此,第一步是创建一个新文件夹,在其中导入平台的所有“准备好的”B2C 扩展。这样做之后我导入了
我正在使用 Postgres 9.3、Spring 和 Java。 对于来自 javadoc 的 BatchUpdateException: After a command in a batch up
我编写了一个 java 程序,它使用 jdbc 连接到 mysql 数据库。它将记录插入到 mysql。sql是这样的: INSERT INTO my_schema.my_table VALUE
我尝试使用 PreparedStatement.executeBatch() 执行批处理查询,并 try catch BatchUpdateException 中发生的任何异常。但我在调用 Batch
我有一个类似 的域 class BusinessOrganization { static hasMany = [organizationBusinessTypes:OrganizationB
我正在使用具有一对一关系的 Hibernate XML 映射构建一个应用程序。我的实体是 Auto 和 Targa。 这是我的 Java 类定义。 Targa.java public class Ta
我遇到了一些麻烦。 我正在尝试列出一些有关在 executeUpdate() 期间失败的查询的数据,并且我读到可以捕获 BatchUpdateException 然后获取 updateCount,它会
我有一个批量更新函数,不包含任何 GROUP_CONCAT() 调用; UPDATE product SET viewed = ? WHERE product_id = ? 如
一些遗留代码表现出奇怪的行为。我有一个 Hibernate 标准: Session session = em.unwrap(Session.class); Criteria crit = sessio
spark2.2 中使用 jdbc 驱动写入 TiDB 时出现此错误: java.sql.BatchUpdateException: transaction too large, len:300200
我正在尝试使用额外的列保存多对多关系,但我的代码运行不正常。我希望有人能帮助我 我的数据库是: CREATE TABLE MUSICISTA ( ID INTEGER UNSIGNED NOT N
我正在尝试使用 JdbcTemplate 将当前时间戳存储在 Oracle 数据库中。我试图在其中存储两列 timestamp ,但一列是 VARCHAR ,一列是 TIMESTAMP ,但是查看异常
我正在尝试从 MATLAB 写入 PostgreSQL 数据库表。我已经使用 JDBC 建立了连接并创建了表,但是当我尝试插入记录时出现 BatchUpdateException。 插入数据的 MAT
我是一名优秀的程序员,十分优秀!