【问题标题】:How can I find the values causing BatchUpdateException?如何找到导致 BatchUpdateException 的值?
【发布时间】:2012-06-23 18:29:19
【问题描述】:

我正在使用 Spring JDBCTemplate 对 Oracle 10g 数据库执行几千行的批处理更新(插入)。为了测试我的错误处理,我确保我得到了关于最大长度的异常。

我得到以下(预期的)异常:

引起:org.springframework.jdbc.UncategorizedSQLException: PreparedStatementCallback; SQL [INSERT INTO同事(col_id,col_code,col_description,pers_id)VALUES(?,?,?,?)]的未分类SQLException; SQL状态[72000];错误代码 [12899]; ORA-12899: "MYSCHEMA"."COLLEAGUES"."COL_DESCRIPTION" 列的值太大(实际值:57,最大值:40);

嵌套异常是 java.sql.BatchUpdateException: ORA-12899: value too large for column "MYSCHEMA"."COLLEAGUES"."COL_DESCRIPTION"(实际:57,最大值:40)

我的问题是,导致此异常的 col_description 的值是什么?如您所见,查询不显示实际值,而仅显示 ?准备好的语句。

【问题讨论】:

    标签: sql oracle exception batch-updates


    【解决方案1】:

    如果您从数据库中获取数据,请尝试从源表中选择无效数据列

    select * from COLLEAGUES_source_column 
    where length(COL_DESCRIPTION_source_column) > 40
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-05-10
      • 2011-04-09
      • 1970-01-01
      • 2020-08-22
      • 2012-04-05
      • 1970-01-01
      • 1970-01-01
      • 2016-01-26
      相关资源
      最近更新 更多