db2 => ? sql805
 SQL0805N找不到程序包 "<程序包名>"。
解释:
不能完成语句,因为未在目录中找到必要的程序包。
"<程序包名>" 的格式为:
o   'pkgschema.pkgname 0Xcontoken',其中一致性标记以十六进制给出。
o   'pkgschema.pkgname.pkgversion',如果程序包版本为空字符串,则名
     称省略 '.pkgversion'。o   '%.pkgname',如果设置了 CURRENT PACKAGE PATH 的话。CURRENT
     PACKAGE PATH 中模式名的设置是由百分比字符('%')来指示的。 
此消息 (SQLCODE) 的可能原因是:
o   程序包未绑定或已删除。
o   若试图运行 DB2 实用程序或 CLI 应用程序,则 DB2
     实用程序可能需要重新绑定至数据库。o   '%.pkgname',如果设置了 CURRENT PACKAGE PATH,但是在 CURRENT
     PACKAGE PATH 中的任何模式中都找不到名称为 'pkgname' 的程序包。

 

注意,当对给定的 package-schema.package-name
版本标识使用版本标识时,可能有以相同的程序包模式和程序包名定义的程
序包,但是未找到正确的程序包,原因是现有程序包与请求的版本或一致性
标记不一致。程序包必须与程序包名的所有三个部分相匹配。当正在使用多
个版本,导致出现此消息的附加原因为:

o   正在执行的应用程序的版本已预编译、编译和链接,但是未绑定,或已
    绑定但是后来删除了该版本的程序包。

o   应用程序已预编译和绑定,但是未编译和/或链接,所以正在执行的应
    用程序不是最新的。

o   程序包由与生成编译并链接至应用程序可执行文件的已修改源文件的预
    编译不同的源文件预编译生成的绑定文件绑定。

o   新应用程序同与现有的程序包相同的名称(和版本)绑定,这样就替换
    了现有的程序包。如果运行与替换的程序包相关联的应用程序,则将导
    致此 错误。

在所有这些情况下,请求的一致性标记与现有版本的一致性标记不匹配,因
此认为未找到程序包。

不能处理该语句。

用户响应:

指定正确的程序包名或绑定该程序。若正在运行的应用程序未与数据库绑定
,则与数据库管理员联系以执行必需的绑定。确保正在执行的应用程序或对
象模块是与生成器包的预编译和绑定相关联的已编译和链接的修改源代码。

如果设置了 CURRENT PACKAGE PATH,则确保在 CURRENT PACKAGE PATH
中指定了包括程序包的模式。

可以使用下列 SQL 语句来查询目录以确定是否有程序包的不同版本:

SELECT PKGSCHEMA, PKGNAME, PKGVERSION, UNIQUE_ID
   FROM SYSCAT.PACKAGES
   WHERE PKGSCHEMA='pkgschema' and PKGNAME='pkgname'.
  注意 UNIQUE_ID 列与一致性标记相对应。若 DB2 实用程序需要重新绑定至数据库,则当连接至数据库时,数据库管理
 员可以通过从实例的 bnd 子目录发出下列 CLP 命令之一来完成此操作: o   对于 DB2 实用程序,发出“DB2 bind @db2ubind.lst blocking all
     grant public”。o   对于 CLI,发出“DB2 bind @db2cli.lst blocking all grant
     public”。 
联合系统用户:确保在适用的数据源上绑定联合服务器所必需的程序包。参
 阅联合系统指南以获取有关将程序包与数据源绑定的更多信息。 sqlcode :  -805
 sqlstate :  51002
db2 =>