`
dannyhz
  • 浏览: 395592 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

乌龙事件 以及 SQLException的 nextException getMessage

 
阅读更多
今天搞了一个乌龙 ,忘记了数据库里已经有一个 order_id为4的值 , 然后我自己这里开始循环 1,2,3 都是对的, 但是到第四条怎么就错了呢 , 然后开始查 它报的错误, 它报的错是
引用


com.ibm.db2.jcc.am.BatchUpdateException: [jcc][t4][102][10040][4.13.127] 批处理出现故障。虽然已经提交了批处理,但是该批处理的某个成员至少发生了一个异常。
使用 getNextException() 来检索已经过批处理的特定元素的异常。 ERRORCODE=-4229, SQLSTATE=null


但实际上, 并非这个错误,这个错误是因为在批处理的时候 一个总的错误,实际上是某个批处理子项报的错误,  然后用了getNextException就得到了具体的错误,
发现是这个
Error for batch element #1: DB2 SQL Error: SQLCODE=-803, SQLSTATE=23505, SQLERRMC=5;MPOS.BAT2_CMP_RESULT, DRIVER=4.13.127

然后才想起来 4 这个值已经被我用过了, 而这个字段是有唯一索引的,然后重新弄就好了


public void batchInsertUserWithDbSwitchKey(int number, int start, Connection conn) throws SQLException{
		conn.setAutoCommit(false);  
		
//	    		"BAT2_CMP_RESULT (BATID, SRC, TRTM, CHANNEL_NO,CHL_ORDER_ID,MY_ORDER_ID,MCH_NO, SEC_MCH_NO," +
//				"TRAM, TRTP, REL_ORDER_ID,MEMO, BRH_ID, MY_MCH_NO,MY_SEC_MCH_NO,TERM_NO," +
//				"COST_RATE,TOTAL_RATE,COST,TOTAL_FEE,RZAMT,CKTURN,CKFG,CKDT,TRADE_TYPE," +
//				"MCH_ORDER_ID,PAYBANK,FZFG,MY_PTMCH_RATE,MY_PTMCH_FEE,D0FG,TRADE_CODE, " +
//				"CLDT,BANK_CODE) " + 
//				" values(?,?,?,?,?,?,?,?,"
//				+ "?,?,?,?,?,?,?,?,"
//				+ "?,?,?,?,?,?,?,?,?,"
//				+ "?,?,?,?,?,?,?,?,?) " );
	    		
		PreparedStatement ps = conn.prepareStatement("insert into " +
				"BAT2_CMP_RESULT (BATID, MY_ORDER_ID, MCH_NO, SEC_MCH_NO," +
				"TRAM, CKTURN, CKFG,  BANK_CODE) " + 
					" values(?,?,?,?,?,?,?,?) " );
	try{	
		for(int i = 1000; i <= 2000; i++){
			
			ps.setLong(1, 802L);
			ps.setString(2, String.valueOf(i));
			ps.setString(3, "1");
			ps.setString(4, "2");
			ps.setDouble(5, 200);
			ps.setInt(6, 1);
			ps.setInt(7, 1);
			ps.setString(8, "303100");
			
			ps.addBatch();
			
		}
		ps.executeBatch();
	}catch(SQLException e){
		SQLException e1 = e.getNextException();
		while(e1 != null){
			System.out.println(e1.getMessage());
			e1 = e1.getNextException();
		}
		
		e.printStackTrace();
		
	}
		conn.commit();
		conn.close();
	}

分享到:
评论

相关推荐

    解决Exception java.sql.SQLException ORA-00600 内部错误代码

    在oracle里面运行一下,解决Exception java.sql.SQLException ORA-00600 内部错误代码

    java.sql.SQLException: 结果集已耗尽

    在Java编程中,`java.sql.SQLException: 结果集已耗尽` 是一个常见的错误提示,通常出现在处理数据库查询结果集时。这个异常表明程序试图访问已经没有数据的结果集中下一行,即所有行已经被遍历完,尝试访问超出范围...

    SQLException

    `SQLException`是Java中处理所有数据库错误的标准异常类,它继承自`java.lang.Exception`。本文将围绕`SQLException`这一主题,对数据库操作过程中可能遇到的一些常见异常情况进行详细解析。 #### 二、SQLException...

    java.sql.SQLException: 不支持的字符集 (在类路径中添加 orai18n.jar): ZHS16GBK

    java.sql.SQLException: 不支持的字符集 (在类路径中添加 orai18n.jar): ZHS16GBK ……

    oracle ora-各种常见java.sql.SQLException归纳

    Oracle ORA 异常处理详解 Oracle 是一个强大的关系数据库管理系统,然而,在使用 Oracle 时,总是会遇到各种错误信息,这些错误信息是Oracle抛出的异常信息,用于提示开发者出现了什么问题。了解这些错误信息是...

    JDBC探索之SQLException解析

    1. SQLException 的概述 当使用 JDBC 与数据源(在本文中的数据源表示我们实际使用的数据库)进行交互的时候遇见错误的时候,将会抛出名为 SQLException 的异常。一个 SQLException 的异常里面包含以下信息,用于帮助...

    Caused by: java.sql.SQLException: JZ0SJ: 没有在此数据库中发现元数据存取器信息。 请按 jConnect 文档中所述安装

    标题中的“Caused by: java.sql.SQLException: JZ0SJ: 没有在此数据库中发现元数据存取器信息。 请按 jConnect 文档中所述安装”是一个典型的错误信息,表明在尝试使用Java数据库连接(JDBC)驱动程序访问数据库时...

    [MySQL] 存储过程错误异常处理例子

    一个存储过程通常由`CREATE PROCEDURE`语句定义,包括参数声明、语句块(如`BEGIN...END`)以及可能的返回值。在语句块内部,我们可以编写任何合法的SQL语句,包括数据查询、插入、更新或删除等操作。 错误异常处理...

    structs2动态添加表单

    &lt;exception-mapping result="SQLException" exception="java.sql.SQLException"&gt;&lt;/exception-mapping&gt; &lt;/global-exception-mappings&gt; &lt;result name="success" type="redirect"&gt;/employee/success.jsp ...

    JAVA 7新特性1

    catch (IOException | SQLException | Exception ex) { logger.error(ex); throw new MyException(ex.getMessage()); } ``` 这种特性可以减少代码冗余,并生成更少的字节码。 另一个升级完成于是编译器对重新抛出...

    jsp+access实现的图书管理系统

    public void openConn()throws Exception //连接数据库 { try { Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); String url="jdbc:odbc:bookManage"; conn=DriverManager.getConnection(url,"","")...

    System.Data.SqlClient.SqlException: 无法打开登录所请求的数据库 登录失败。

    请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.Data.SqlClient.SqlException: 无法打开登录所请求的数据库 “TakeClass”。登录失败。 用户 ‘2D2727E2578F446\...

    已成功与服务器建立连接,但是在登录过程中发生错误

    请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.Data.SqlClient.SqlException: 用户 'sa' 登录失败。该用户与可信 SQL Server 连接无关联。 说明: 执行当前 Web ...

    oracle+ora-各种常见java.sq

    在Oracle数据库操作中,我们经常会遇到与`java.sql.SQLException`相关的异常。这个异常通常是Java应用程序在尝试与Oracle数据库进行交互时出现的问题。本篇将详细探讨`java.sql.SQLException`的各种常见类型及其解决...

    java.sql.SQLException: null,  message from server: “Host ‘%’ is not allowed to connect to

    java.sql.SQLException: null, message from server: “Host ‘223.72.41.7’ is not allowed to connect to this MySQL server” 客户端访问时报错: 解决方法: 1,登陆服务器 mysql&gt; use mysql; //用mysql ...

    exception类处理

    Checked Exception(检查型异常)是那些在编译时必须被处理的异常,例如IOException、SQLException等。如果方法可能会抛出这些异常,那么要么在方法签名中声明抛出此类异常,要么在方法内部捕获并处理它们。不处理这...

Global site tag (gtag.js) - Google Analytics