小编Mar*_*ion的帖子

为什么我使用DB2 LUW和WebSphere App Server获得SQLCODE = -204,SQLSTATE = 42704?

有许多网页,人们将此消息显示为症状(后面的值SQLERRMC和驱动程序级别不同):

DB2 SQL Error: SQLCODE=-204, SQLSTATE=42704, SQLERRMC=M51Dev.CUSTOMER, DRIVER=3.61.65
Run Code Online (Sandbox Code Playgroud)

包括一些在这里StackOverflow的.

错误代码表示找不到对象 - 几乎总是表 - ,并且SQLERRMC参数的值包含相关对象的名称.在我可以发现的每一次出现中,解决方案只是他们需要使用模式名称限定表名.但是,正如您从上面的行中可以看到的那样,这不是这种情况.架构是M51Dev,表是CUSTOMER,并且它们都存在.

环境是WebSphere Application Server(在这种特殊情况下为7.0.0.31,但我有点怀疑它是相关的)在Windows Server 2003 R2上运行,在旧的XP机器上使用DB2 9.7.300.3885.数据源在WAS中定义,并通过JNDI检索.应用程序是用Java编写的,我们的SQL是通过Spring的JdbcTemplates 使用JDBC执行的.

WAS中的数据源定义包括一个名为的自定义属性currentSchema,该属性设置为M51Dev.

这是SQL的相关行(或其中之一,因为我们得到每个表的相同症状):

SELECT rundateOverride  FROM customer WHERE customerId=1
Run Code Online (Sandbox Code Playgroud)

这是堆栈跟踪的摘录.如果它有帮助我可以提供更多.

bad SQL grammar [SELECT rundateOverride  FROM customer WHERE customerId=1]; nested exception is com.ibm.db2.jcc.am.SqlSyntaxErrorException: DB2 SQL Error: SQLCODE=-204, SQLSTATE=42704, SQLERRMC=M51Dev.CUSTOMER, DRIVER=3.61.65
    at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:233)
    at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:72)
    at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:406)
    at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:455)
    at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:463)
    at …
Run Code Online (Sandbox Code Playgroud)

java database db2 websphere

10
推荐指数
1
解决办法
6万
查看次数

标签 统计

database ×1

db2 ×1

java ×1

websphere ×1