ibm db2 net driver sql错误。没有找到表名?

问题描述:

从该查询: SELECT * FROM表ibm db2 net driver sql错误。没有找到表名?

我收到以下错误信息:

错误:DB2 SQL错误:SQLCODE = -204,SQLSTATE = 42704,则sqlerrmc = webuser.table,DRIVER = 4.8 0.87 SQLSTATE:42704 错误码:-204 错误:DB2 SQL错误:SQLCODE = -727,SQLSTATE = 56098,则sqlerrmc = 2; -204; 42704; webuser.table,DRIVER = 87年4月8日 SQLSTATE:56098 ErrorCode:-727

如何调查问题的任何建议是多少赞赏。

乍一看,DB2似乎没有在webuser模式下找到该表名,或者当前连接用户的模式与该表的模式不匹配。尝试:

select * from webuser.table 

如果失败,那么它可能不会在webuser模式下存在,所以要尽量找出模式它不存在下。

你经常可以找到sql error codes信息在IBM DB2 infocenter或像这样的DB2 UDB命令行:

db2 ? SQL0100 

你可以查找任何错误是这样的:

db2 ? SQLnnnnn 

其中nnnnn是错误代码。

您也可以经常通过在谷歌上搜索而从db2中找到有关sql错误代码的信息,而不包括-,因为google会从搜索结果中删除前面的短划线。因此,搜索sql code 204而不是sql code -204

您通常可以找到的所有表的列表sysibm.tablessyscat.tables下取决于什么类型的系统(Z/OS或UDB)正在运行,并且还取决于如果DB2管理员限制访问这些目录表。

如果要针对UDB实例运行,请尝试:

select tabschema, tabname from syscat.tables 

我假设,当然,你是不是希望的表被命名为table。我认为这是db2或SQL-92标准下的一个限制词。

如果您碰巧正在运行运行该查询的存储过程,那么您可能看不到查询中的真实错误。除非存储过程被编程为从查询本身捕获并返回sqlcode和sqlstate,否则存储过程通常会返回与存储过程中的查询不同的错误代码。

此外,我看到你正在得到-727的sqlcode,消息代码为2。该文档说:

An error occurred during implicit system action type action-type . Information returned for the error includes SQLCODE sqlcode , SQLSTATE sqlstate and message tokens token-list . 

其中行为类型为2:隐准备缓存的动态SQL语句

此错误信息是那么简单,更调整为数据库管理员。它可能最终有用,但我会先尝试其他建议。这可能意味着某些软件包没有绑定到数据库(如用于网络驱动程序的软件包),或者数据库中的某些权限不正确或修复软件包未正确应用,并且缺少数据库过程。但是,这也可能是由于-204而造成的,并且只是后续的错误。