You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user-java@ibatis.apache.org by joson yu <yu...@gmail.com> on 2010/03/23 03:09:46 UTC
db2 -302 error
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)
Re: db2 -302 error
Posted by joson yu <yu...@gmail.com>.
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 <ma...@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
> <yuqianguo@gmail.
> com> To
> user-java@ibatis.apache.org
> 03/23/2010 07:44 cc
> AM
> Subject
> Re: db2 -302 error
> Please respond to
> user-java@ibatis.
> apache.org
>
>
>
>
>
>
>
> ps:in the sql the parameter should passed in with String that is longger
> than 30.
>
> 2010/3/23 joson yu <yu...@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-unsubscribe@ibatis.apache.org
> For additional commands, e-mail: user-java-help@ibatis.apache.org
>
>
Re: db2 -302 error
Posted by Mario Ds Briggs <ma...@in.ibm.com>.
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.maves@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-java@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 <yu...@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 <ma...@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 <yuqianguo@gmail.
com>
To user-java@ibatis.apache.org
03/23/2010 11:04
cc
AM
Subject Re: db2 -302
error Please respond to
user-java@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 <ma...@in.ibm.com>