yritech
作者yritech·2010-05-18 12:39
数据库管理员·国信网联

SQL0805N 找不到程序包 "<程序包名>"

字数 2389阅读 3313评论 1赞 0

数据库迁移后,发现我的transfer程序运行错误,数据无法插入到数据库中,并提示805错误,

查看db2的805错误原因,提示程序未绑定,于是执行绑定语句。

打开cmd,进入以下路径:

C:Program FilesTongTechTLQ6.2Bin>

执行以下语句:

connect to t_branch user db2inst1 using 111111

bind TSDB2.bnd

绑定后,重启transfer,数据入库,问题解决。

 

805错误详情;

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

 

如果觉得我的文章对您有用,请点赞。您的支持将鼓励我继续创作!

0

添加新评论1 条评论

chengjixuanchengjixuan系统工程师
2011-01-05 16:42
什么叫UNIQUE_ID 列与一致性标记相对应,请问:一致性标记在哪里看呀
Ctrl+Enter 发表

作者其他文章

X社区推广