Michael,
multiple semicolon separated queries are not allowed by DB2. It is good
from a security viewpoint too.

thanks
Mario



                                                                           
             "Michael Schall"                                              
             <mike.sch...@gmai                                             
             l.com>                                                     To 
                                       [email protected]         
             06/01/2009 22:08                                           cc 
                                                                           
                                                                   Subject 
             Please respond to         Multiple Queries in a single        
             user-j...@ibatis.         prepared statement in DB2           
                apache.org                                                 
                                                                           
                                                                           
                                                                           
                                                                           
                                                                           




I would like to run multiple queries within a single select statement using
IBATIS connecting to DB2 UDB.

<select id="getIncrementedValue" parameterClass="java.lang.String"
resultClass="java.lang.Integer">
<![CDATA[
UPDATE ${schema}.ADMCOUNTERS
SET COUNTER = COUNTER + 1
WHERE COUNTERCD = #value#
;
SELECT COUNTER
FROM ${schema}.ADMCOUNTERS
WHERE COUNTERCD = #value#
]]>
</select>

Following the suggestion from
http://www.mail-archive.com/[email protected]/msg02858.html.  I tried
to add the allowMultiQueries setting on the connection URL but I still get
an error from db2.

The list of parameters for connection URLs for the v8 DB2 driver does not
contain this setting. (
http://publib.boulder.ibm.com/infocenter/db2luw/v8/index.jsp?topic=/com.ibm.db2.udb.doc/ad/rjvdsprp.htm
)  But I can't find a similar page for 9.5.

Should this work?  Is this a limitation of the DB2 JDBC driver?  Am I
missing something?

Thanks for your time.

Mike

My connection URL:
jdbc:db2://<server>:<port>/<database>:currentPackageSet=NULLIDR1;allowMultiQueries=true

Root Error:
Caused by: com.ibm.db2.jcc.c.SqlException: DB2 SQL error: SQLCODE: -104,
SQLSTATE: 42601, SQLERRMC: ?    ;;    SELECT     COUNTER    FROM;WHERE
COUNTERCD =;<space>
at com.ibm.db2.jcc.c.kh.c(kh.java:1660)
at com.ibm.db2.jcc.c.kh.d(kh.java:1648)
at com.ibm.db2.jcc.c.kh.a(kh.java:1205)
at com.ibm.db2.jcc.b.db.g(db.java:139)
at com.ibm.db2.jcc.b.db.a(db.java:39)
at com.ibm.db2.jcc.b.t.a(t.java:34)
at com.ibm.db2.jcc.b.sb.f(sb.java:142)
at com.ibm.db2.jcc.c.kh.m(kh.java:1176)
at com.ibm.db2.jcc.c.lh.bb(lh.java:1941)
at com.ibm.db2.jcc.c.lh.d(lh.java:2383)
at com.ibm.db2.jcc.c.lh.U(lh.java:1401)
at com.ibm.db2.jcc.c.lh.execute(lh.java:1385)
at
org.apache.tomcat.dbcp.dbcp.DelegatingPreparedStatement.execute(DelegatingPreparedStatement.java:169)
at sun.reflect.GeneratedMethodAccessor93.invoke(Unknown Source)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at
com.ibatis.common.jdbc.logging.PreparedStatementLogProxy.invoke(PreparedStatementLogProxy.java:62)
at $Proxy1.execute(Unknown Source)
at
com.ibatis.sqlmap.engine.execution.SqlExecutor.executeQuery(SqlExecutor.java:185)
at
com.ibatis.sqlmap.engine.mapping.statement.MappedStatement.sqlExecuteQuery(MappedStatement.java:221)
at
com.ibatis.sqlmap.engine.mapping.statement.MappedStatement.executeQueryWithCallback(MappedStatement.java:189)
... 47 more



Reply via email to