乍一看,DB2 似乎没有在webuser 模式下找到该表名,或者当前连接用户的模式与该表的模式不匹配。试试:
select * from webuser.table
如果失败,那么它可能不存在于webuser 架构下,因此请尝试找出它确实存在于哪个架构下。
您通常可以在IBM DB2 infocenter 或 DB2 UDB 命令行中找到sql error codes 的信息,如下所示:
db2 ? SQL0100
您可以通过这种方式查找任何错误:
db2 ? SQLnnnnn
nnnnn 是错误代码。
您通常还可以通过在 google 上搜索而不包括 - 来从 db2 中找到有关 sql 错误代码的信息,因为 google 从搜索结果中删除了前面带有破折号的术语。因此,请搜索 sql code 204 而不是 sql code -204 。
您通常可以在sysibm.tables 或syscat.tables 下找到所有表的列表,具体取决于您运行的系统类型(z/OS 或 UDB),也取决于 db2 管理员是否具有访问限制到那些目录表。
如果您针对 UDB 实例运行,请尝试:
select tabschema, tabname from syscat.tables
我当然假设您不希望该表被命名为table。我认为这是 db2 或 SQL-92 标准下的限制词。
如果您碰巧正在运行一个运行该查询的存储过程,那么您可能不会从查询中看到真正的错误。存储过程通常会返回与存储过程中的查询不同的错误代码,除非它们被编程为从查询本身捕获并返回 sqlcode 和 sqlstate。
此外,我看到您得到的 sqlcode 为 -727,消息代码为 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 .
action-type 为 2:缓存动态 SQL 语句的隐式准备
对于数据库管理员来说,此错误信息不太直接,但更适合。它可能最终会很有用,但我会先尝试其他建议。这可能意味着某些包未绑定到数据库(如您的网络驱动程序的包)或数据库中的某些权限不正确或未正确应用修订包并且缺少数据库过程。但是,它也可能是由 -204 引起的,只是后续错误。