在用iBatis向DB2 character类型字段插入NULL值的时候报错: 
2009-04-14 21:03:55,234 ERROR (com.delver.bms.card.service.CardManagerImpl:92) - org.springframework.jdbc.UncategorizedSQLException: SqlMapClient operation; uncategorized SQLException for SQL []; SQL state [null]; error code [-99999];   
--- The error occurred in com/delver/bms/card/dao/t_card_SqlMap.xml.  
--- The error occurred while applying a parameter map.  
--- Check the t_card.update-InlineParameterMap.  
--- Check the parameter mapping for the 'priceType' property.  iBatis 配置文件:
<insert id="insert" parameterClass="card">
insert into T_CARD
(ID,CARD_NO,CUSTOMER_NAME,PRICE_TYPE,REBATE_TYPE,
REBATE_LEVEL,SHOPGRADE_ID,POSTPAY_FLAG,CASHCARD_FLAG,CASH_AMOUNT,
CASH_TOTAL_RECHARGE,CASH_TOTAL_CONSUME,SCORE,CARD_TYPE,IDENTITY_TYPE,
IDENTITY_NO,ADDR,CREDIT_LEVEL,TEL,MOBILE,
  BIRTHDAY,BIRTHDAY_FLAG,CUSTOMER_SEX,EMAIL,QQ_NO,
CUSTOMER_GROUP,REGISTER_DATE,REG_BRANCH,REG_STAFF,ISSUE_REASON,
VALIDITY_DATE,CARD_STATUS,UPDATE_DATE,OPERATOR,TENANTID)
  values  (#id:CHARACTER#,#cardNo:VARCHAR#,#customerName:VARCHAR#,#priceType:CHARACTER#,
   #rebateType:INTEGER#,#rebateLevel:INTEGER#,#shopGradeId:CHARACTER#,
   #postPayFlag:VARCHAR#,#cashCardFlag:VARCHAR#,#cashAmount:DECIMAL#,
#cashTotalRecharge:DECIMAL#,#cashTotalConsume:DECIMAL#,#score:DECIMAL#,
#cardType:VARCHAR#,#identityType:VARCHAR#,#identityNo:VARCHAR#,#addr:VARCHAR#,
#creditLevel:INTEGER#,#tel:VARCHAR#,#mobile:VARCHAR#,#birthday:DATE#,
#birthdayFlag:VARCHAR#,#customerSex:VARCHAR#,#email:VARCHAR#,#qqNo:VARCHAR#,
#customerGroup:CHARACTER#,#registerDate:DATE#,#regBranch:CHARACTER#,
#regStaff:CHARACTER#,#issueReason:VARCHAR#,#validityDate:DATE#,#cardStatus:VARCHAR#,
#updateDate:DATE#,#operator:CHARACTER#,#tenantId:VARCHAR#)
</insert>我试过定义一个paremeterMap也不行,请问用什么方法能够解决?

解决方案 »

  1.   

    异常信息少贴了一句: com.ibm.db2.jcc.c.SqlException: [ibm][db2][jcc][10281][10295] 尚不支持 JDBC 类型 1111。
      

  2.   

    问题已解决,是我犯了个低级错误,jdbc驱动里面没有character类型的定义,只有char类型,把#priceType:CHARACTER#换成#priceType:CHAR#就OK了,当时也是粗心,直接把数据库里面的字段类型复制过来了,这是一个教训!