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