If possible you can do what Nathan suggested.
Alternately you are getting a DataIntegrityViolationException (since u are
using spring) so you can catch that explicitly and handle however you want
  - if u are always sure it is a 'query' i.e. readonly, ignore it if thats
what the higher level business use-case expects for such a scenario.
  - u know that the supplied input value is not matching the DB
constraints, so report it back.

Mario



                                                                       
             Nathan Maves                                              
             <nathan.ma...@gma                                         
             il.com>                                                    To
                                       user-java@ibatis.apache.org     
             03/23/2010 01:18                                           cc
             PM                                                        
                                                                   Subject
                                       Re: db2 -302 error              
             Please respond to                                         
             user-j...@ibatis.                                         
                apache.org                                             
                                                                       
                                                                       
                                                                       




validate your data before you send it to IB.  If you know that your column
is set to a max length of 30 then check that before you try and send it.

On Tue, Mar 23, 2010 at 12:28 AM, joson yu <yuqian...@gmail.com> wrote:
  ok. i have got it.  thank you.
  but i want ask one question more.
  the root of the problem is caused by JDBC or DB2.
  if i dont use a parameter marker  when i use ibatis ,i think it is not a
  good idea for the security reason.  or just catch the exception and
  ignore it?
  and can you give some advice for this situation.

  really thank you.



  2010/3/23 Mario Ds Briggs <mario.bri...@in.ibm.com>
   ok... i will try to explain 1 more time.

   In DB2, if you use a parameter marker in the SQL query, then DB2  WILL
   'constraint the paramter value to the db column length constraint'. If
   you
   dont use a parameter marker, then DB2 will NOT 'constraint the value to
   the
   db column length '

   cheers
   Mario            joson yu            <yuqian...@gmail.
   com>
   To                                      user-java@ibatis.apache.org
               03/23/2010 11:04
   cc

   AM
   Subject                                      Re: db2 -302
   error            Please respond to
   user-j...@ibatis.               apache.org







   maybe i am not discribe clearly.
   the parameter's length is longger than the column length .but the the
   same
   sql.  in the db2 client is fine,but use ibatis it throw exception.
   the db constraint the column's lenth but don't constraint the  condition
   parameter's.but in ibatis ,it runs like it also constraint the
   parameter's.

   i don't know does i show the problem clear.


   2010/3/23 Mario Ds Briggs <mario.bri...@in.ibm.com> Hi Joson, I guess
   you figured the error out yourself i.e. length of the parameter value is
   > than the column length (30).   It works fine in db2 client since there
   you are not using a parameter marker but have value as a literal inside
   the SQL statement string. cheers Mario                 joson
   yu
   <yuqian...@gmail. com> To
   user-java@ibatis.apache.org
                03/23/2010
   07:44 cc AM Subject                                       Re: db2
   -302 error             Please respond
   to user-j...@ibatis.                apache.org







    ps:in the sql the parameter should passed in with String  that is
   longger than 30. 2010/3/23 joson yu <yuqian...@gmail.com>  there is an
   error happend in my situation.and want to know is there  anyone else
   meet this problem.  i use ibatis2.  the database is used  db2.  sql:
   select [columns] from  tables where column1 = ''.  and the column1 is
   varchar type and it's length is 30.  the sql is execute fine in the db2
   client. but when i use ibatis to  execute it .it throw exception ,blow
   is all
   exception info.        
org.springframework.dao.DataIntegrityViolationException: SqlMapClient  
operation;
 SQL [];  --- The error
   occurred in  
com/hcss/fy/business/resource/ccr/model/HCSS_CCR_INFO_SqlMap.xml.  --- The
 error occurred while applying a parameter map.  --- Check
   the load_inheritor_baseinfo-InlineParameterMap.  --- Check the
   statement (query failed).  --- Cause: com.ibm.db2.jcc.a.jm: DB2 SQL
   Error: SQLCODE=-302,  SQLSTATE=22001, SQLERRMC=null, DRIVER=3.50.151;
   nested exception
   is  com.ibatis.common.jdbc.exception.NestedSQLException:  --- The error
   occurred in  
com/hcss/fy/business/resource/ccr/model/HCSS_CCR_INFO_SqlMap.xml.  --- The
 error occurred while applying a parameter map.  --- Check
   the load_inheritor_baseinfo-InlineParameterMap.  --- Check the
   statement (query failed).  --- Cause: com.ibm.db2.jcc.a.jm: DB2 SQL
   Error: SQLCODE=-302,  SQLSTATE=22001, SQLERRMC=null,
   DRIVER=3.50.151 at  
org.springframework.jdbc.support.SQLStateSQLExceptionTranslator.translate(SQLStateSQLExceptionTranslator.java:114)
      at  
org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.translate(SQLErrorCodeSQLExceptionTranslator.java:322)
      at  
org.springframework.orm.ibatis.SqlMapClientTemplate.execute(SqlMapClientTemplate.java:212)
      at  
org.springframework.orm.ibatis.SqlMapClientTemplate.queryForObject(SqlMapClientTemplate.java:271)
      at  
com.hcss.fy.business.resource.ccr.dao.impl.InheritorDaoImpl.loadInheritor(InheritorDaoImpl.java:48)
      at  
com.hcss.fy.business.resource.ccr.dao.InheritorDaoTest.loadInheritor(InheritorDaoTest.java:57)
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native
 Method) at  
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)   
   at  
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
      at java.lang.reflect.Method.invoke(Method.java:597) at  
org.springframework.test.context.junit4.SpringTestMethod.invoke(SpringTestMethod.java:160)
      at  
org.springframework.test.context.junit4.SpringMethodRoadie.runTestMethod(SpringMethodRoadie.java:233)
      at  
org.springframework.test.context.junit4.SpringMethodRoadie$RunBeforesThenTestThenAfters.run(SpringMethodRoadie.java:333)
      at  
org.springframework.test.context.junit4.SpringMethodRoadie.runWithRepetitions(SpringMethodRoadie.java:217)
      at  
org.springframework.test.context.junit4.SpringMethodRoadie.runTest(SpringMethodRoadie.java:197)
      at  
org.springframework.test.context.junit4.SpringMethodRoadie.run(SpringMethodRoadie.java:143)
      at  
org.springframework.test.context.junit4.SpringJUnit4ClassRunner.invokeTestMethod(SpringJUnit4ClassRunner.java:160)
      at  
org.junit.internal.runners.JUnit4ClassRunner.runMethods(JUnit4ClassRunner.java:59)
      at  
org.junit.internal.runners.JUnit4ClassRunner$1.run(JUnit4ClassRunner.java:52)   
   at  
org.junit.internal.runners.ClassRoadie.runUnprotected(ClassRoadie.java:34)      
at  
org.junit.internal.runners.ClassRoadie.runProtected(ClassRoadie.java:44) --------------------------------------------------------------------- To
 unsubscribe, e-mail:
   user-java-unsubscr...@ibatis.apache.org
    For additional commands, e-mail: user-java-h...@ibatis.apache.org




   ---------------------------------------------------------------------
   To unsubscribe, e-mail: user-java-unsubscr...@ibatis.apache.org
   For additional commands, e-mail: user-java-h...@ibatis.apache.org





---------------------------------------------------------------------
To unsubscribe, e-mail: user-java-unsubscr...@ibatis.apache.org
For additional commands, e-mail: user-java-h...@ibatis.apache.org

Reply via email to