2016-07-28 91 views
0

我试图在DB2 10.1 Windows上使用JDBC运行多语句查询,但它失败并出现语法错误。以下是查询 -在DB2窗口上使用JDBC运行多语句查询

SELECT * FROM schemaname.tablename; 

异常线程“main” com.ibm.db2.jcc.am.SqlSyntaxErrorException:意外的标记“”之后发现“”。预期标记可能包括:“schemaname.tablename” .. SQLCODE = -104,SQLSTATE = 42601,DRIVER = 4.13.127

我明白,这将在查询的末尾分号自带由于这数据库不理解。我怎样才能设置查询分隔符为分号,所以通过这个。

+0

你在说什么这个“多语句查询”?可能你可能会显示一些导致错误的代码? – mustaccio

+0

它基本上是SELECT * FROM schemaname.tablename1; SELECT * FROM schemaname.tablename2;两个查询用分号分隔。但是,我的要求并不完全如此。我需要运行以分号结尾的查询,因为它们以这种方式进行编码,并且可以在DB2 for z/OS上正常运行,所以我需要运行DB2 for Windows。我没有选择更改查询。 – User2709

+1

这些都不可能。一次只能发布一条语句,除非使用[复合语句](http://www.ibm.com/support/knowledgecenter/SSEPGG_10.5.0/com.ibm.db2.luw.apdv.sqlpl.doc/ doc/c0053781.html),它不应该有任何终止符(因为终止符不是SQL语法的一部分)。 – mustaccio

回答

0

使用JDBC,您一次执行一条语句;从外观上看,DB2不支持它。一些驱动程序/数据库可以解决这个问题,但它是非标准的。

因此,不是一次尝试执行两条语句,而是需要一个接一个地执行它们。

+0

奇怪的是,它适用于DB2 for z/OS,但我还没有发现Windows版本的很多信息。 – User2709

+0

@ User2709据我所知,没有一个'DB2',有多种变体都称为DB2,并且功能和支持因平台和变体而异。 –