SQL1000 - SQL1249

SQL1000N 别名 是无效的数据库别名。

说明

在命令或 api 中指定的别名无效。此别名必须包含 1 到 8 个字符(在 MBCS 国家或地区中,是字节),且所有字符都必须来自数据库管理器基本字符集。

无法处理此命令。

用户响应

使用正确的别名重新提交该命令。

SQL1001N 名称 是无效的数据库名称。

说明

在命令中指定的数据库名称的语法无效。数据库名称必须包含 1 到 8 个字符,并且所有字符都必须来自数据库管理器基本字符集。

无法处理此命令。

用户响应

使用正确的数据库名称重新提交该命令。

sqlcode:-1001

sqlstate:2E000

SQL1002N 驱动器 是无效的驱动器。

说明

在命令中指定的驱动器无效。驱动器是单个字符(A 至 Z),指示数据库或数据库目录所在的软盘驱动器或硬盘分区。

无法处理此命令。

用户响应

用正确的驱动器重新提交该命令。

SQL1003N 密码无效,因为语法不正确或者密码与指定的数据库的密码不匹配。

说明

密码长度应该等于或小于 18 个字符。然而,如果将要为 APPC 对话验证密码,那么密码的长度不能超过 8 个字符。

用户响应

确保密码不长于允许的限制。

sqlcode:-1003

sqlstate:28000

SQL1004C 文件系统没有足够的存储空间用来处理命令。

说明

在指定的文件系统中没有足够存储器用来处理命令。

在 Windows 环境下的分区数据库环境中,分区数据库组中的每个节点都必须要有完全相同的物理硬盘驱动器规范(盘符),且可使用(必须包含可使用的空间),才能使 CREATE DATABASE 命令成功。物理硬盘驱动器盘符是在数据库管理器配置中指定的。如果 DFTDBPATH 为空白,那么缺省值将是实例拥有的机器上安装了数据库产品的硬盘驱动器路径(安装路径)。

无法处理该命令。

用户响应

选择另一个文件系统或者从指定的文件系统中擦除一些非数据库文件,以便为数据库管理器功能提供空间。

在 Windows 环境下的分区数据库环境中,依次执行下列步骤:

  • 确定所需要的硬盘驱动器规范(盘符)。驱动器盘符是在错误消息中指定的。
  • 确定数据库分区的哪个节点遇到了问题。通常可以在实例所拥有节点的 db2diag 日志文件中找到此信息。
  • 更正遇到问题的个别节点上的驱动器问题,或更改数据库管理器配置中的驱动器规范,以便使分区数据库组的每个节点上都可以使用同一驱动器(且有足够的空间)。
  • 请重新发出该命令。

SQL1005N 数据库别名 名称 已存在于本地数据库目录或系统数据库目录中。

说明

已使用指定的别名。如果在目录数据库命令中未指定别名,那么将数据库名称用作别名。当创建数据库时,别名与数据库名称相同。

当系统数据库目录中已存在别名时,在目录数据库命令中可能发生此错误。

在创建数据库命令上,此错误可能发生在下列其中一种情况中:

  • 在系统数据库目录和本地数据库目录中已存在此别名。
  • 在系统数据库目录中已存在别名,但是不在本地数据库目录中。
  • 本地数据库目录中已存在别名,但是不在系统数据库目录中。

用户响应

对于目录数据库命令,从系统数据库目录中对别名取消编目,并重新提交原始命令,或者用另一个别名来编目数据库。

对于创建数据库命令,对前面列示的三种情况分别执行以下操作:

  • 删除使用该别名的数据库。重新提交原始命令。
  • 对别名取消编目。重新提交原始命令。
  • 将别名编目到系统数据库目录中。删除使用相同别名的数据库。重新提交原始命令。

SQL1006N 应用程序的代码页 代码页 与数据库的代码页 代码页 不匹配。

说明

应用程序不能与数据库相连,因为活动代码页与创建数据库时的活动代码页不同。

无法处理该命令。

用户响应

退出当前的应用程序,并返回到操作系统。更改进程的代码页,并重新启动应用程序。

SQL1007N 在表空间中查找对象页时出错。

说明

在表空间中存在毁坏的内部数据库页或内部逻辑错误。

用户响应

停止使用对象或表空间。与 IBM 服务中心联系,以检查对象和表空间。

sqlcode:-1007

sqlstate:58034

SQL1008C 存储器组或表空间标识无效。

说明

所指定的存储器组或表空间标识不存在。它大于当前的最大存储器组或表空间标识,或者已删除该存储器组或表空间。

用户响应

停止使用数据库。保存错误日志中的诊断信息,并与 IBM 软件支持机构联系。

sqlcode:-1008

sqlstate:58036

SQL1009N 命令无效。

说明

当在仅作为客户机的工作站上发出该命令,或对远程数据库发出该命令时,该命令不受支持。这样的命令的一个示例是编目本地数据库。

无法处理该命令。

用户响应

可以采用的解决方案包括:
  • 从不是仅有客户机工作站或从数据库所在的工作站发出指定的命令。
  • 验证数据库是否已正确地编目。
  • 发出另一个命令。

SQL1010N 类型 是无效的类型参数。

说明

在 Database Environment 命令中指定的类型无效。对于间接数据库,它必须是“0”;而对于远程数据库,它必须是“1”。

另外,在 Unix 平台上,对于具有 DCE 全局名的数据库,类型可以是“3”。

无法处理该命令。

用户响应

使用有效类型重新提交该命令。

SQL1011N 在 CATALOG DATABASE 命令中没有为间接条目指定驱动器。

说明

对间接条目发出了 CATALOG DATABASE 命令,但是未指定路径。间接条目必须指定数据库驻留的路径。

无法处理该命令。

用户响应

使用所需的路径重新提交该命令或更改类型。

SQL1012N 在 CATALOG DATABASE 命令中没有为远程条目指定节点名。

说明

在 CATALOG DATABASE 命令中没有对远程条目指定 节点名 参数。远程条目必须指定数据库的节点名。

无法处理该命令。

用户响应

nodename 参数或另一类型重新提交该命令。

SQL1013N 找不到数据库别名或数据库名称 名称

说明

命令中指定的数据库名称或别名不是现有的数据库,或在(客户机或服务器)数据库目录或 db2dsdriver.cfg 配置文件中找不到该数据库。

用户响应

确保系统数据库目录中存在所指定的数据库名称。如果系统数据库目录中不存在数据库名称,那么该数据库要么不存在,要么尚未编目该数据库名称。

如果系统数据库目录中存在该数据库名称,并且条目类型为 INDIRECT,请确保指定的本地数据库目录中存在该数据库。如果条目类型是 REMOTE,那么确保该数据库存在,并且已在服务器的数据库目录上对其进行编目。

对于带有 AT DBPARTITIONNUM 子句的 CREATE DATABASE,请确保数据库名称在具有条目类型 INDIRECT 且目录数据库分区号不等于 -1 的系统数据库目录中。

联合系统用户:除前一次响应外,还应验证 SYSCAT.SERVERS 中指定的数据库名称是否均有效。更正其中指定了不存在数据库的任何 SYSCAT.SERVERS 条目。

sqlcode:-1013

sqlstate:42705

SQL1014W 在正在扫描的目录、文件或列表中没有更多的条目。

说明

完成了对目录、文件或列表的扫描。

用户响应

不需要执行任何操作。

SQL1015N 数据库处于不一致状态。

说明

不一致状态的可能原因包括:

  • 数据库由于先前会话异常终止(例如电源故障)而处于脱机状态。
  • 如果发出 db2ckupgrade 命令时遇到了错误:
    • 数据库处于联机状态,并且已发出修改数据库数据的 SQL。
    • 数据库处于联机状态,并且已启用 HADR。

仅限于 DB2 pureScale 环境,可能的原因还包括:

  • 此 DB2 成员上的数据库由于先前会话异常终止而处于脱机状态。
  • 由于先前会话异常终止,数据库在整个 DB2 pureScale 实例中处于脱机状态。
  • 在数据库处于不一致状态(例如备份暂挂、前滚暂挂或复原暂挂)时,尝试执行添加操作或删除操作。并且,执行删除操作时,所有表空间必须处于一致状态。
  • 无法对此数据库进行 HADR 配置。
  • 在执行一项或多项删除操作后尝试执行添加操作,但未执行脱机备份。
  • 如果在进行下列其中一项拓扑更改后发出命令时遇到了此错误:
    1. 源成员拓扑包含一些在目标成员拓扑中不存在的成员。
    2. 源数据库是 ESE,但目标实例是 DB2 pureScale 实例。
    3. 源数据库是 DB2 pureScale 实例,但目标实例是 ESE。

用户响应

  • 如果数据库由于先前会话异常终止而处于脱机状态,那么执行下列操作作为响应:
    1. 使用 RESTART DATABASE 命令来重新启动数据库。在分区数据库服务器环境中,必须在所有数据库分区上发出该命令。
  • 如果发出 db2ckupgrade 命令时遇到了此错误,请执行下列操作作为响应:
    1. 对该数据库执行清除关闭。
    2. 关闭后,如果在数据库上启用了 HADR,请在数据库上发出 STOP HADR 命令。
    3. 重新发出 db2ckupgrade 命令。

仅限于 DB2 pureScale 环境:

  • 如果此 DB2 成员上的数据库由于先前会话异常终止而处于脱机状态,那么执行下列操作作为响应:

    缺省情况下,在 DB2 pureScale 环境中会自动启动成员崩溃恢复,因此不需要用户执行任何操作。如果未自动启用成员崩溃恢复,那么通过发出 RESTART DATABASE 命令对此 DB2 成员执行成员崩溃恢复。

    即使一个成员不一致,仍然可以在其他一致的成员上完成某些数据库操作。要在对成员进行崩溃恢复期间访问数据库,请连接至活动的 DB2 成员。要访问此特定成员,请等到完成对成员进行崩溃恢复之后。

  • 如果由于先前会话异常终止,数据库在整个 DB2 pureScale 实例中处于脱机状态,请提醒用户,数据库在恢复完成之后才可用。后续步骤取决于是否自动启用组崩溃恢复。如果已启用(这是缺省情况),那么不需要用户执行任何操作。如果未启用自动组崩溃恢复,请执行下列操作作为响应:
    1. 通过发出 RESTART DATABASE 命令执行组崩溃恢复。
    2. 恢复完成后,对具有不确定事务的任何其他成员执行成员崩溃恢复。
  • 备份处于备份暂挂状态的数据库或表空间,然后重新提交添加或删除操作。
  • 如果使用循环日志记录连接至数据库以具体化任何现有删除操作,请继续重新发出添加命令。
  • 这不是受支持的操作,数据库必须一致。如果这是数据库的副本,请在源实例上使数据库一致,然后将其移至目标实例。

sqlcode:-1015

sqlstate:55025

SQL1016N CATALOG NODE 命令中指定的 local_lu 别名 名称 无效。

说明

不允许 CATALOG NODE 命令中指定的本地逻辑单元 ( local_lu) 别名。本地逻辑单元别名是本地 SNA 逻辑单元别名,必须为 1 到 8 个字符,并且不能包含空白字符。

无法处理该命令。

用户响应

验证别名是否为允许的逻辑单元名。验证名称中所使用的字符。使用有效的逻辑单元名重新提交该命令。

SQL1017N CATALOG NODE 命令中指定的方式参数 方式 无效。

说明

不允许 CATALOG NODE 命令中指定的 mode

mode 参数标记了通信管理器用来设置会话的通信概要文件。该方式必须为 1 到 8 个字符。有效字符是大写或小写的 A 到 Z、0 到 9、#、@ 和 $。第一个字符必须是字母。系统将小写字符更改为大写字符。

无法处理该命令。

用户响应

验证名称是否是允许的方式名。验证名称中所使用的字符。用正确的方式重新提交该命令。

SQL1018N CATALOG NODE 命令中指定的节点名 名称 已存在。

说明

CATALOG NODE 命令的 nodename 参数中指定的节点名已在此文件系统上的节点目录中编目。

无法处理该命令。

用户响应

如果正确输入了 nodename 参数,那么继续处理。

如果节点已编目信息不再有效,那么在节点目录中对已编目节点取消编目,并重新提交该命令。如果节点已编目信息有效,那么定义新节点名,并使用新节点名重新提交该命令。

SQL1019N 命令中指定的节点名 名称 无效。

说明

在命令中所指定的节点名无效。节点名可以为 1 到 8 个字符,并且所有字符都必须来自数据库管理器基本字符集。指定的节点名不能与本地实例名相同。

无法处理该命令。

用户响应

通过显示 DB2INSTANCE 环境变量的值,确保节点名与本地实例名不同。在 UNIX 操作系统上,可输入以下命令来显示 DB2INSTANCE 环境变量。
echo $DB2INSTANCE
在 Windows 操作系统上,可输入以下命令来显示 DB2INSTANCE 环境变量。
echo %DB2INSTANCE%

用正确的节点名重新提交该命令。

SQL1020C 节点目录已满。

说明

节点目录不能保留任何条目。

无法处理该命令。

用户响应

取消编目节点目录中任何不需要的条目。

SQL1021N 找不到 UNCATALOG NODE 命令中指定的节点名 名称

说明

在节点目录中找不到命令中指定的 节点名

无法处理该命令。

用户响应

如果 nodename 参数正确,那么节点可能已取消编目,处理可继续。否则,用正确的节点名重新提交该命令。

SQL1022C 没有足够的内存用来处理该命令。

说明

没有足够的随机存取存储器 (RAM) 可用来处理该命令。

如果调用了远程过程,那么远程过程可使用大于允许的最大值 (4K) 的局部变量空间。

如果语句涉及用户定义的函数 (UDF),那么 ASLHEAPSZ 数据库管理器配置参数控制的内存集可能大于可用的内存。

无法处理该命令。

用户响应

停止该应用程序。可以采用的解决方案包括:
  • 将 CONFIG.SYS 文件中的 MEMMAN NO SWAP、NO MOVE 选项更改为 SWAP、MOVE。
  • 移除后台进程。
  • 减小定义内存分配的配置参数的值,包括 ASLHEAPSZ(如果失败的语句涉及 UDF )。
  • 安装更多随机存取存储器 (RAM)。
  • 如果调用了远程过程,那么应确保远程过程使用的局部变量空间小于或等于 4K。
  • 如果正在使用“远程数据服务”,那么由于每个应用程序至少使用一个块,因此要增大服务器和客户机配置中“远程数据服务”堆的大小(rsheapsz)。

sqlcode:-1022

sqlstate:57011

SQL1023C 通信对话失败。

说明

在通信对话期间出错。

无法处理该命令。

用户响应

再次尝试运行原始命令。如果错误仍存在,请与通信管理员联系。

联合系统用户:数据源也可能会检测到此情况。

sqlcode:-1023

sqlstate:08001

SQL1024N 不存在数据库连接。

说明

没有与数据库连接。除非先前执行了 SQL CONNECT,否则不能处理其他 SQL 语句。

无法处理该命令。

用户响应

如果与数据库断开连接时发生错误,那么继续处理。如果在另一条 SQL 语句中发生错误,那么发出 SQL CONNECT 语句,并重新提交该命令或语句。

sqlcode:-1024

sqlstate:08003

SQL1025N 未停止数据库,因为数据库仍是活动的。

说明

如果有任何应用程序与数据库管理器控制下的数据库相连,或者激活了任何数据库,或者有任何活动 HADR 主数据库或备用数据库在此数据库管理器的控制之下,那么不能处理停止数据库管理器命令。

未执行任何操作。

用户响应

通常不需要执行任何操作。要停止数据库管理器,所有活动应用程序都必须与它们正在使用的所有数据库断开连接。或者,用户可使用 FORCE 命令强制应用程序断开连接,并使用 DEACTIVATE 命令释放数据库,包括任何 HADR 主数据库或备用数据库。

SQL1026N 数据库管理器已活动。

说明

当在数据库管理器已启动的情况下发出 db2start 命令时,将会返回此消息。db2start 命令未发生任何错误,此消息仅供参考。

用户响应

不需要任何响应。

SQL1027N 找不到节点目录。

说明

不能处理列表节点目录命令,因为找不到节点目录。

无法处理该命令。

用户响应

用适当的参数发出 CATALOG NODE 命令,并重新提交当前的命令。

SQL1029N CATALOG NODE 命令中指定的 partner_lu 别名 名称 无效。

说明

CATALOG NODE 命令中指定的 partner_lu 别名未曾指定,或包含无效字符。partner_lu 别名是伙伴 SNA 逻辑单元别名,必须是 1 到 8 个字符,并且不能包含空白字符。

无法处理该命令。

用户响应

检查 partner_lu 是否有输入错误。验证别名是否为允许的逻辑单元名。验证在别名中所使用的字符。用正确的 partner_lu 重新提交该命令。

SQL1030C 数据库目录已满。

说明

系统数据库目录或本地数据库目录都不能再保存更多条目。

无法处理该命令。

用户响应

取消编目目录中任何不需要的条目。如果本地数据库目录已满,那么在另一个文件系统上创建新的数据库。

SQL1031N 在指示的文件系统中找不到数据库目录。

说明

找不到系统数据库目录或本地数据库目录。尚未创建数据库,或者没有正确编目该数据库。

无法处理该命令。

用户响应

验证数据库是否是用正确的路径规范创建的。Catalog Database 命令带有路径参数,它指定数据库所在的目录。

sqlcode:-1031

sqlstate:58031

SQL1032N 未发出启动数据库管理器的命令。

说明

尚未处理启动数据库管理器的命令。必须先处理该命令才可以发出停止数据库管理器、任何 SQL 语句或实用程序的命令。

无法处理此命令。

用户响应

发出启动数据库管理器命令并重新提交当前命令。

如果使用多个逻辑节点,那么应确保已正确设置了 DB2NODE 环境变量。DB2NODE 环境变量指示应用程序将要尝试连接的节点。必须将 DB2NODE 设置为在应用程序的同一主机上定义的其中一个节点的节点号。

在 DB2 pureScale 环境中,通过下列其中一种方式对此消息作出响应:

  • 将 DB2NODE 环境变量设置为处于活动状态的 DB2 成员。
  • 在一台未配置为仅运行集群高速缓存工具 (CF) 的计算机上重新运行此命令。

sqlcode:-1032

sqlstate:57019

SQL1033N 不能访问数据库目录,因为正在使用该目录。

说明

如果当前正在更新数据库目录,那么不能对其进行访问。同样,如果因任何原因已经访问了目录,那么不能访问该目录以进行更新。系统数据库目录或本地数据库目录中都存在此情况。

无法处理该命令。

用户响应

等到完成访问之后再重新提交该命令。

sqlcode:-1033

sqlstate:57019

SQL1034C 数据库已损坏,所以用于处理数据库的所有应用程序已停止。

说明

数据库已损坏。数据库要在恢复之后才能使用。与数据库相连的所有应用程序都已经断开连接,并且在数据库上运行应用程序的所有进程都已经停止。

无法处理该命令。

用户响应

通常,通过执行下列步骤对此错误作出响应:

  1. 通过发出 RESTART DATABASE 命令来恢复此数据库。
  2. 如果 RESTART DATABASE 命令始终失败,那么您可能需要根据备份来复原数据库。

在分区数据库环境中,通过执行下列步骤对此错误作出响应:

  1. 根据备份来复原数据库之前,请参阅 syslog 以确定 RESTART DATABASE 命令是否由于发生数据库分区故障或通信故障而失败
  2. 如果 RESTART DATABASE 命令由于发生数据库分区故障或通信故障而失败,那么应确保满足下列条件:
    • 数据库管理器已启动并且正在运行
    • 所有数据库分区之间都可以进行通信
  3. 使用 db2_all 命令重新提交 RESTART DATABASE 命令:
    db2_all db2 restart database <database_name>
  4. 如果 RESTART DATABASE 命令完成后仍有未解析的不确定事务,请多次运行 RESTART DATABASE 命令以确保已解析所有不确定事务。

在 DB2 pureScale 环境中,通过执行下列步骤对此错误作出响应:

  1. 请参阅管理日志以确定 RESTART DATABASE 命令是否由于正在重新启动的成员无法访问共享存储设备而失败。
  2. 如果 RESTART DATABASE 命令由于正在重新启动的成员无法访问共享存储设备而失败,请解决访问问题,然后重试 RESTART DATABASE 命令。
  3. 如果正在重新启动的成员能够访问共享存储设备,请从另一个成员发出 RESTART DATABASE 命令。
  4. 如果这些操作都不起作用,请复原此数据库,然后执行前滚操作。

如果您在执行前滚处理期间遇到了此错误,那么通过执行下列步骤对此错误作出响应:

  1. 从备份复原数据库。
  2. 再次执行前滚操作。

如果您正在安装样本数据库,那么通过执行下列步骤对此错误作出响应:

  1. 删除样本数据库
  2. 再次安装样本数据库

sqlcode:-1034

sqlstate:58031

SQL1035N 操作失败,因为无法以请求的方式来连接指定的数据库。

说明

当用户连接至数据库时,缺省情况下,该连接处于共享方式。如果另一个用户已经以互斥方式连接至同一数据库,那么共享连接尝试将失败并返回此消息。类似地,如果用户尝试以互斥方式访问数据库,但是已经以共享方式访问该数据库,那么连接尝试将失败并返回此消息。

在下列类型的情况下也会返回此消息:

  • 已达到数据库的最大连接数。
  • 请求了互斥使用数据库,但另一个用户已经在以互斥方式使用该数据库。
  • 已显式激活数据库(共享访问),这会阻止该操作建立与该数据库的互斥连接。
  • 在数据库处于停顿状态时,尝试删除数据库分区。

在 pureScale 环境中,当发生以下事件系列时,可能会返回此消息:

  1. 对数据库启动了脱机操作(例如,备份、复原或前滚),并且该操作获得了与数据库的互斥连接。
  2. 未释放启动该脱机操作失败(例如,由于发生了硬件或软件故障)的成员和该脱机操作所拥有的互斥连接。
  3. 启动该脱机操作的成员无法自动重新启动。

用户响应

执行以下故障诊断步骤:

  1. 通过使用带有 SHOW DETAIL 参数和 GLOBAL 参数的 LIST APPLICATIONS 命令,确定哪些用户应用程序或系统应用程序已打开与数据库的连接。
  2. 等待那些已打开与数据库的连接的应用程序关闭其连接。
  3. 通过使用下列命令或语句来终止任何剩余的与数据库的连接:
    • QUIESCE DATABASE 命令
    • CONNECT RESET 语句
    • FORCE APPLICATION ALL 命令
    • DEACTIVATE DATABASE 命令
  4. 在 DB2 pureScale 环境中,重新启动在执行脱机操作时关闭的任何成员。
  5. 如果数据库处于停顿状态,请将其取消停顿。
  6. 再次连接。

sqlcode:-1035

sqlstate:57019

SQL1036C 访问数据库时,发生 I/O 错误。

说明

下列任何一种情况都表示可能发生了此问题:

  • 系统不能打开、读取或写入数据库文件。
  • 系统不能创建数据库,因为系统在创建数据库文件或数据库目录时出错。
  • 因为在系统删除数据库的数据库文件或目录时出错,所以系统不能删除该数据库。
  • 因为在系统创建或删除数据库的数据库文件或目录时接收到中断,所以系统不能创建数据库。
  • 系统在连接期间找不到数据库子目录或数据库配置文件。

问题原因按它们的发生频率排序:

  • 在活动日志路径目录中找不到日志文件。
  • 尝试对其执行操作的数据库目录存在问题。
  • 磁盘空间可能不足而无法完成操作。

不能使用该数据库。

用户响应

与解释中描述的问题原因相对应的适当响应是:

  • 要验证是否丢失了日志文件,请检查 db2diag 日志文件以确定是否已发生日志记录错误(返回码包含 SQLO_FNEX)。如果存在日志记录错误,那么此错误将包含丢失的日志文件的名称。确保该文件位于活动日志路径目录中。如果找不到该文件,请复原数据库,然后将数据库前滚到日志文件中引用的早于丢失日志文件的时间点(使用比丢失的文件的时间戳记更早的时间戳记)。
  • 数据库目录可能存在问题。检查目录的完整性。潜在问题的示例包括:许可权问题、安装点问题以及毁坏。
  • 增大文件系统大小。

注意:如果在 CREATE DATABASE 或 DROP DATABASE 期间发生错误,那么后续的 CREATE DATABASE 或 DROP DATABASE 命令将尝试擦除不成功的 CREATE DATABASE 或 DROP DATABASE 命令所遗留的文件或目录。

sqlcode:-1036

sqlstate:58030

SQL1037W 节点目录为空。

说明

尝试读取节点目录的内容,但目录中不存在任何条目。

用户响应

不需要执行任何操作。

sqlcode:+1037

sqlstate:01606

SQL1038C 访问节点目录时发生了 I/O 错误。

说明

由于 I/O 错误,不能访问节点目录。

无法处理该命令。

用户响应

重新提交该命令。如果错误继续,那么移除节点目录(sqllib 目录下面的 sqlnodir),并重新编目网络上的节点名。

sqlcode:-1038

sqlstate:58031

SQL1039C 当访问数据库目录时,发生了 I/O 错误。

说明

不能访问系统数据库目录或本地数据库目录。不仅系统编目数据库或取消对数据库的编目时可能发生此错误,而且系统访问在目录中编目的数据库时,此错误也可能发生。

无法处理该命令。

用户响应

可以采用的解决方案包括:
  • 如果软盘系统中发生错误,那么验证驱动器中的软盘是否正确,并且是否已预编译好使用。验证是否没有写保护。
  • 如果数据库目录被破坏,那么根据备份版本复原在那里编目的数据库,并对它们进行编目。

如果正在安装样本数据库,那么删除它并再次安装样本数据库。

sqlcode:-1039

sqlstate:58031

SQL1040N 该语句失败,因为连接至数据库的应用程序已达到最大数目。

说明

连接至数据库的每个应用程序导致分配某些专用内存。要管理内存使用,通过设置 maxappls 配置参数,可配置可(本地和远程)连接至数据库的最大并行应用程序数。

如果连接至数据库的应用程序数等于数据库配置文件中定义的最大值,那么会返回此消息。

用户响应

通过下列其中一种方式响应此消息:

  • 等待其他应用程序与数据库断开连接,然后重新提交该语句。
  • 如果需要更多应用程序并行运行,请增大 maxappls 数据库配置参数的值或将 maxappls 设置为“AUTOMATIC”。

sqlcode:-1040

sqlstate:57030

SQL1041N 已启动最大并发数据库数。

说明

应用程序尝试启动不活动的数据库,但活动的数据库数已经等于在系统配置文件中所定义的最大值。

无法处理该命令。

用户响应

等待其中一个数据库变成不活动的。如果要求更多数据库同时活动,那么增大 numdb 的值。在下一次成功地启动数据库管理器之后,新值将生效。

sqlcode:-1041

sqlstate:57032

SQL1042C 发生了意外的系统错误。

说明

发生了系统错误。可能会发生此错误的一些原因是:

  • 未正确安装数据库管理器,或者未正确设置环境。
  • 在基于 UNIX 的系统上,可能需要运行 db2iupdt 来更新数据库管理器实例,以便能够获得新的系统配置,或者能够访问与安装或移除某些产品选项、修订包或修改级别相关联的功能。
  • 如果您未使用正确的 DB2 管理服务器密码,可能就会获得此消息。

无法处理该命令。

用户响应

  • 要更新实例以获得配置或者对功能的访问权,可运行 DB2IUPDT <InstName>。
  • 如果在尝试与数据库相连时发生错误,那么获取跟踪信息(指示如下),并与 IBM 支持机构联系。

如果这些建议不适用于此问题,请确保系统时间和日期设置正确,并确保系统有足够的可用内存和交换/调页空间。

重新提交当前命令。

如果问题仍然存在,那么停止然后重新启动该数据库管理器。

如果还有错误,那么重新安装数据库管理器。

如果跟踪是活动的,那么在操作系统命令提示符处调用“独立跟踪设施”。与技术服务代表联系并提供以下信息:

需要的信息:

  • 问题描述
  • SQLCODE 或消息号
  • 如果可能的话,还应提供 SQLCA 内容
  • 如果可能的话,还应提供跟踪文件。

联合系统用户:如果有必要,请找出导致请求失败的数据源中的问题。如果问题发生于数据源,那么遵循该数据源的问题确定过程。

sqlcode:-1042

sqlstate:58004

SQL1043C “数据库服务”不能初始化系统目录。返回了错误 错误

说明

在初始化系统目录期间,CREATE DATABASE 命令失败。

用户响应

记录消息号 (SQLCODE) 和此消息中的错误。

如果跟踪处于活动状态,那么在操作系统命令提示符处调用“独立跟踪设施”。然后与技术服务代表联系,并提供以下信息:
  • 环境:应用程序
  • 需要的信息:
    • 问题描述
    • SQLCODE 或消息号和错误标识
    • SQLCA 内容(如果有可能)
    • 跟踪文件(如果有可能)。

SQL1044N 由于中断而取消处理。

说明

用户可能按了中断键序列。

处理停止。

联合系统用户:数据源也可能会检测到此情况。

用户响应

继续执行以处理中断。

如果正在安装样本数据库,那么删除它并再次安装样本数据库。

如果正在启动数据库管理器,那么在发出任何 db2 命令之前发出 db2stop。

sqlcode:-1044

sqlstate:57014

SQL1045N 找不到数据库,因为未正确编目该数据库。

说明

数据库目录中的间接条目指向另一个非 HOME 条目。

无法处理该命令。

用户响应

用目录扫描命令验证所有关联数据库目录中的条目。

sqlcode:-1045

sqlstate:58031

SQL1046N 授权标识无效。

说明

登录时指定的权限对于数据源或数据库管理器无效。发生了下列情况之一:

  • 对于 Windows 平台,权限包含的字符超过 30 个,对于其他平台,权限包含的字符超过 128 个。
  • 权限中包含对权限无效的字符。有效字符是 A 到 Z、a 到 z、0 到 9、#、@ 和 $。
  • 权限是 PUBLIC 或 public。
  • 权限以 SYS、sys、IBM、ibm、SQL 或 sql 开始。
  • 该权限违反某些特定于数据源的命名约定。

无法处理该命令。

用户响应

用有效的授权标识登录。

联合系统用户:如果有必要,请找出拒绝请求的数据源存在的问题,并使用对于该数据源有效的授权标识。

sqlcode:-1046

sqlstate:28000

SQL1047N 应用程序已经与另一个数据库相连。

说明

在应用程序已与另一个数据库相连时不能创建数据库。

当已与另一个数据库相连时,不允许将文件与数据库进行绑定。

无法处理该命令。

用户响应

与活动数据库断开连接,并重新提交该命令。

SQL1048N START USING DATABASE 或 CONNECT TO 命令中使用的参数 参数 无效。对于共享访问,该参数必须为 S,对于互斥使用,该参数必须为 X,对于在单节点上的互斥使用,该参数必须为 N。对于 DB2 Connect 连接,仅支持 S。仅在 MPP 配置中支持 N。

说明

START USING DATABASE 或 CONNECT TO 命令中的 use 参数必须是 S(表示共享使用)或 X(表示互斥使用)。如果使用 DB2 Connect 来连接至数据库,那么只允许共享访问。在 SQLENV.H 文件中提供了这些值的助记等式。

无法处理该命令。

用户响应

用有效的 use 参数重新提交该命令(最好从助记等式)。

SQL1049C 应用程序状态出错。数据库连接已丢失。

说明

与数据库的连接已丢失。

无法处理该命令。

用户响应

发出 CONNECT RESET 语句。

SQL1050N 不能取消编目数据库,因为它是主数据库。

说明

在 UNCATALOG DATABASE 命令中指定的数据库是主数据库。不能对主数据库取消编目,因为删除数据库时,它们的目录条目就被删除了。

无法处理该命令。

用户响应

如果正确地指定了数据库名称,那么继续处理。

SQL1051N 路径 路径 不存在或无效。

说明

下列其中一个条件为真:

  • 对数据库目录或存储路径指定的值不存在或不可访问。
  • 对数据库目录或存储路径指定的值包含与数据库代码页不兼容的字符。
  • 存储路径必须具有绝对路径名,不能是相对路径名。
  • 尝试了激活或连接至数据库,但找不到存储路径或该路径不可访问。
  • 在维护在备份映像中定义的存储路径同时,尝试复原自动存储器数据库。但是,找不到存储路径或该路径不可访问。
  • 前滚操作尝试重新应用与添加存储路径相关的日志记录,但找不到存储路径或该路径不可访问。
  • 正在尝试删除与此数据库不相关联的存储路径。

如果您正在使用集群管理器,那么当数据库管理器无法将给定存储路径添加到集群管理器配置时,可能会返回此消息。集群管理器中生成的错误消息将记录在 db2diag 日志文件中。

不能处理语句或命令。

用户响应

根据情况:

  • 如果路径不存在,那么创建路径;或者如果路径不可访问,那么更改路径的许可权。重新提交语句或命令。
  • 在数据库目录和存储路径中使用符合命名规则的字符。
  • 如果指定了相对存储路径名,那么改为指定其绝对路径名。重新提交语句或命令。
  • 解决存储路径的问题并重新提交命令。如果存储路径不再可用,那么必须从备份映像中复原数据库。
  • 如果存储路径不存在,那么创建路径;或者如果路径不可访问,那么更改路径的许可权。或者,可以使用 RESTORE DATABASE 命令的 ON 参数或者使用 SET STOGROUP PATHS 命令重新定义存储路径。
  • 如果存储路径不存在,那么创建路径;或者如果路径不可访问,那么更改路径的许可权。或者,再次复原数据库并重新定义与该数据库相关联的存储路径。如果在复原期间重新定义了存储路径,那么将忽略之后添加的所有存储路径日志记录。
  • 如果尝试删除存储路径,请确保它存在并且与该数据库相关联。然后再次尝试该请求。

如果您正在使用集群管理器,那么更正问题并重新提交该命令:

  1. 查看 db2diag 日志文件,以获取集群管理器中生成的错误消息。
  2. 对 db2diag 日志文件中的集群管理器错误消息作出响应,以解决导致数据库管理器无法将路径添加到集群管理器配置的底层问题。
  3. 重新提交该命令。

sqlcode:-1051

sqlstate:57019

SQL1052N 数据库路径 路径 不存在。

说明

该命令的 path 参数中指定的路径无效。不存在具有该名称的路径,或者在 DB2_CREATE_DB_ON_PATH 注册表变量被禁用时,指定了路径(仅限于 Windows)。

在 Windows 或 UNIX 环境下的分区数据库环境中,分区数据库组中的每个节点都必须有相同的硬盘驱动器规范(路径)可用并且具有可用空间,才能成功执行 CREATE DATABASE 命令。硬盘驱动器路径是在数据库管理器配置中指定的。如果 DFTDBPATH 为空白,那么缺省值将是实例拥有的机器上安装了数据库产品的硬盘驱动器路径(安装路径)。

无法处理该命令。

用户响应

用正确的数据库路径重新提交该命令。

在 Windows 或 UNIX 环境下的分区数据库环境中,遵循下列步骤:

  • 确定所需要的硬盘驱动器规范(路径)。该路径是在错误消息中指定的。
  • 确定数据库分区的哪个节点遇到了问题。通常可以在实例所拥有节点的 db2diag 日志文件中找到此信息。
  • 更正遇到问题的节点上的驱动器问题,或着更改数据库管理器配置中的驱动器规范,以使分区数据库组的每个节点上都可以使用同一驱动器并且具有足够的空间。
  • 请重新发出该命令。
  • 在 Windows 上,如果所有将访问该数据库的应用程序都基于 V9 或更高版本的外部 API,那么可以启用 DB2_CREATE_DB_ON_PATH 注册表变量以支持将路径作为数据库路径。

SQL1053N 已经在处理中断。

说明

系统当前正在处理中断,所以不能处理另一个中断。

忽略中断请求。

用户响应

等到当前的中断处理完成之后再重新提交该命令。

SQL1054N 正在执行 COMMIT,不能中断。

说明

系统当前正在处理 COMMIT。用户输入了中断键序列。

忽略中断请求。

联合系统用户:数据源也可能会检测到此情况。

用户响应

等到 COMMIT 完成之后再重新提交该请求。

SQL1055N 正在执行 ROLLBACK,不能中断。

说明

系统当前正在处理 ROLLBACK。用户输入了中断键序列。

忽略中断请求。

联合系统用户:数据源也可能会检测到此情况。

用户响应

等到完成 ROLLBACK 之后再重新提交该请求。

SQL1056N 已经打开 8 个数据库目录扫描。

说明

在此进程中已经打开 8 个数据库目录扫描。不允许多于 8 个打开扫描。

无法处理该命令。

用户响应

发出一条或多条 CLOSE DIRECTORY SCAN 命令,并重新提交该命令。

sqlcode:-1056

sqlstate:54029

SQL1057W 系统数据库目录为空。

说明

尝试读取系统数据库目录的内容,但该目录中不存在任何条目。

用户响应

不需要执行任何操作。

sqlcode:+1057

sqlstate:01606

SQL1058N Directory Scan 命令中的句柄参数无效。

说明

Directory Scan 命令中指定的 handle 参数无效。该 handle 必须是从 OPEN DIRECTORY SCAN 或 OPEN NODE DIRECTORY SCAN 命令返回的句柄。

无法处理该命令。

用户响应

使用有效的 handle 参数重新提交该命令。

SQL1059N 不能处理 GET NEXT 命令,因为未发出 Open Scan 命令。

说明

在打开扫描之前发出了目录扫描命令。

无法处理该命令。

用户响应

发出 OPEN DIRECTORY SCAN 或 OPEN NODE DIRECTORY SCAN 命令,并重新提交当前的命令。

SQL1060N 用户 授权标识 不具有 CONNECT 特权。

说明

指定的授权标识没有访问该数据库的 CONNECT 特权。在用户可连接数据库之前,必须授予其 CONNECT 特权。当使用可信连接上允许的用户标识发出了切换用户请求,而该用户标识并不具备对该数据库的 CONNECT 特权时,也会返回此错误。该连接处于未连接状态。

联合系统用户:数据源也可能会检测到此情况。

无法处理该命令。

用户响应

与数据库的系统管理员或数据库管理员联系,请求对授权标识的 GRANT CONNECT。重新提交该命令。

如果由于一个切换用户请求而返回了此错误,那么在使用有效用户标识发出切换用户请求之前(建立了可信连接的用户标识或者可信连接上允许的用户标识都是有效用户标识),如果发出了任何 SQL 语句,都会返回错误(SQLSTATE 08003)。当该连接脱离未连接状态之后,它仍然是可信连接。

联合系统用户:如果有必要,请找出导致请求失败的数据源中的问题,并确保已对该数据源授予正确的特权。对于连接至数据库时所需要的特权,某些数据源可能会使用与 CONNECT 特权不同的名称。

sqlcode:-1060

sqlstate:08004

SQL1061W 已成功完成 RESTART DATABASE 命令,但存在针对数据库的不确定事务。

说明

尽管重新启动数据库操作已成功,但仍然需要解析现有不确定事务。数据库是可用的,但如果与该数据库的最后一个连接被删除之前未解析不确定事务,那么数据库需要再次重新启动才可用。

在 DB2 pureScale 环境中,不确定事务的影响取决于与它们相关联的 DB2 成员以及刚完成的恢复操作的类型。如果不确定事务与从其中发出重新启动操作的 DB2 成员相关联,那么数据库将可用,但与不确定事务相关联的任何数据都将不可访问。如果重新启动命令启动了组崩溃恢复,并且不确定事务与另一个 DB2 成员相关联,那么该 DB2 成员在经历成员崩溃恢复之前将保持不一致,并且在此成员崩溃恢复完成之前,不确定事务不可解析。

用户响应

解析不确定事务,或者准备好每次要使用数据库时重新启动此数据库。如果(在 XA/DTP 环境中)正在使用数据库的事务管理器(TM)可用,那么管理员应该指导 TM 解析不确定事务。或者,在非常小心的前提下,管理员可使用 CLP 来试探性地完成事务。

  • 在分区数据库服务器环境中,RESTART DATABASE 命令是针对每个分区运行的。为确保在所有分区上重新启动该数据库,请使用以下命令:
    db2_all db2 restart database
      <database_name>

    如果所有数据库分区都在运行,那么发出此命令将解析所有不确定事务。

    可能必须多次运行此命令以确保所有不确定事务都已解析。

  • 在 DB2 pureScale 环境中,用户响应取决是否启用了自动恢复(缺省情况下,启用了自动恢复)。如果启用了自动恢复,那么在任何成员上启动数据库管理器进程模型(即,通过 db2start 命令或者通过 DB2 集群服务启动)后,将自动进行成员崩溃恢复。如果未启用自动恢复,那么必须使用 RESTART DATABASE 命令来手动启动对成员进行崩溃恢复。在这两种情况下,成员崩溃恢复完成之后,可解析不确定事务。

SQL1062N 找不到数据库路径 路径

说明

命令中指定的数据库 path 参数不存在。如果未指定路径,那么使用在系统配置文件中所定义的缺省路径,但是该缺省路径不存在。

在 Windows 环境下的分区数据库环境中,分区数据库组中的每个节点都必须要有完全相同的物理硬盘驱动器规范(盘符),且可使用(必须包含可使用的空间),才能使 CREATE DATABASE 命令成功。物理硬盘驱动器盘符是在数据库管理器配置中指定的。如果 DFTDB 为空白,那么缺省值将是实例拥有的机器上安装了数据库产品的硬盘驱动器路径(安装路径)。

无法处理该命令。

用户响应

验证路径或缺省路径,并且确保它们在系统中存在。重新提交该命令。

在 Windows 环境下的分区数据库环境中,依次执行下列步骤:

  • 确定所需要的硬盘驱动器规范(盘符)。驱动器盘符是在错误消息中指定的。
  • 确定数据库分区的哪个节点遇到了问题。通常可以在实例拥有节点的 db2diag 日志文件中找到此信息。
  • 更正遇到问题的个别节点上的驱动器问题,或更改数据库管理器配置中的驱动器规范,以便使分区数据库组的每个节点上都可以使用同一驱动器(且有足够的空间)。
  • 请重新发出该命令。

SQL1063N DB2START 处理成功。

说明

成功地完成了用于启动数据库管理器的命令。

SQL1064N DB2STOP 处理成功。

说明

成功地完成了用于停止数据库管理器的命令。

SQL1065W 已成功地创建数据库或者对数据库进行升级,但是在绑定 列表名 列表中的一个或多个绑定文件时发生错误。未对绑定列表文件中下列位置的文件进行绑定:列表

说明

一个或多个实用程序未绑定至数据库。列表文件 列表名 包含绑定文件的列表。列表 中的编号指示列表文件中未绑定文件的相对位置。

未将所列示的实用程序绑定文件绑定至已创建或者已升级的数据库。

用户响应

使用绑定文件列表 列表名 将所指示的实用程序与数据库进行绑定。在调用绑定程序时不要使用格式选项。

SQL1066N DB2START 处理成功。未成功启动 IPX/SPX 协议支持。

说明

未成功启动 IPX/SPX 协议支持。远程客户机不能使用 IPX/SPX 来与服务器相连。原因可能是:
  • 工作站没有向 NetWare 文件服务器登录。
  • 工作站没有在 NetWare 文件服务器绑定程序中创建对象的权限。
  • 网络上的另一个数据库管理器正在使用在数据库管理器配置文件中所指定的同一对象名。

用户响应

确保工作站已向 NetWare 文件服务器登录,并且具有足够的权限在文件服务器的绑定程序中创建对象。用户必须以 SUPERVISOR 或具有同等权限的身份来登录。同时要确保数据库管理器配置文件中所指定的对象名对于网络中的所有数据库管理器是唯一的。进行任何更正,运行 DB2STOP,然后再次运行 DB2START。

如果问题继续,那么在操作系统命令提示符处输入 DB2TRC ON -L 0X100000。再次运行 DB2START,然后在命令提示符处输入 DB2TRC DUMP 文件名以保存跟踪信息。要关闭跟踪,输入 DB2TRC OFF。与服务协调员联系,并提供跟踪信息。

SQL1067N DB2STOP 处理不成功。未成功停止 IPX/SPX 协议支持。

说明

未成功停止 IPX/SPX 协议支持。原因可能是:
  • 工作站没有向 NetWare 文件服务器登录。
  • 工作站没有在 NetWare 文件服务器绑定程序中删除对象的权限。

用户响应

确保工作站已向 NetWare 文件服务器登录,并且有足够的权限来删除文件服务器的绑定库中的对象。用户必须以 SUPERVISOR 或具有同等权限的身份来登录。进行任何更正,并再次运行 DB2STOP。

如果问题继续,那么在操作系统命令提示符处输入 DB2TRC ON -L 0X100000。再次运行 DB2STOP,然后在命令提示符处输入 DB2TRC DUMP 文件名以保存跟踪信息。要关闭跟踪,输入 DB2TRC OFF。与服务协调员联系,并提供跟踪信息。

SQL1068N 在 DB2DOMAINLIST 环境变量处未定义拥有 CONNECT 或 ATTACH 语句的用户标识 用户标识 的域。

说明

CONNECT TO 或 ATTACH TO 语句中的用户标识不属于在 DB2DOMAINLIST 环境变量中所定义的域。

用户响应

通过使用 DB2SET 命令来指定拥有 DB2DOMAINLIST 环境变量中的用户标识的域名。

sqlcode:-1068

sqlstate:08004

SQL1069N 数据库 名称 不是主数据库。

说明

数据库不是本地数据库。在系统数据库目录中本地数据库被编目为间接类型,此条目引用同一节点上的本地数据库目录中的主条目。不能删除远程数据库。

无法处理该命令。

用户响应

如果指定的数据库名称不正确,那么用正确的数据库名称重新提交该命令。如果指定的数据库名称正确,并且想要从数据库目录中移除数据库名称,那么使用 UNCATALOG DATABASE 命令。

SQL1070N 数据库名称参数的地址无效。

说明

应用程序使用的地址对于数据库名称参数无效。指向未分配缓冲区或缓冲区中字符串的地址没有 NULL 终止符。

无法处理该命令。

用户响应

更正应用程序,以便使用正确的地址并且输入字符串以 NULL 结束。

SQL1071N 数据库别名参数的地址无效。

说明

应用程序使用了对此参数无效的地址。指向未分配缓冲区或缓冲区中字符串的地址没有 NULL 终止符。

无法处理该命令。

用户响应

确保应用程序使用有效地址,且输入字符串以 NULL 结束。

SQL1072C 请求已失败,因为数据库管理器资源处于不一致状态。数据库管理器可能已不正确地终止,或者另一个应用程序使用系统资源的方式与数据库管理器使用系统资源的方式发生冲突。

说明

有多种情况可能会返回此消息:

  • 数据库管理器已不正确地终止。(例如,在基于 UNIX 的系统上,如果使用“kill”命令而不是使用 STOP DATABASE MANAGER 命令来终止进程,那么可能会发生这种情况)。
  • 另一个应用程序或用户可能已移除数据库管理器资源。(例如,在基于 UNIX 的系统上,具有足够特权的用户可能无意中使用“ipcrm”命令移除了数据库管理器所拥有的进程间通信 (IPC) 资源)。
  • 另一个应用程序对系统资源的使用与数据库管理器对系统资源的使用发生冲突。(例如,在基于 UNIX 的系统上,另一个应用程序可能正在使用数据库管理器用来创建 IPC 资源的键)。
  • 数据库管理器的另一个实例可能正在使用相同的资源。在基于 UNIX 的系统上,如果两个实例位于不同的文件系统上,并且 sqllib 目录刚好使用冲突的 IPC 键,那么可能会发生此情况。

用户响应

请复审 db2diag 诊断日志文件,以了解更详细的诊断信息。

执行下列其中一个或多个故障诊断步骤和资源清除步骤,然后重新提交失败的请求:

  • 移除所有使用该实例标识来运行的数据库管理器进程。

    例如,在基于 UNIX 的系统上,执行下列步骤:

    1. 通过发出 db2_ps 命令来列出所有使用该实例标识来运行的数据库管理器进程。
    2. 通过发出以下命令来移除那些进程:
      kill -9 <process-ID>
  • 确保任何其他应用程序都未使用该实例标识来运行,然后移除该实例标识所拥有的所有资源。

    例如,在基于 UNIX 的系统上,执行下列步骤:

    1. 通过发出以下命令来列出该实例标识所拥有的所有 IPC 资源:
      ipcs | grep <instance-ID>
    2. 通过发出以下命令来移除那些资源:
      ipcrm -[q|m|s] <instance-ID>
  • 如果发现两个实例可以单独启动,但无法同时处于活动状态,请以实例所有者身份执行下列步骤,为那些实例中的一个实例生成新的 IPC 键:
    对于单个数据库分区实例:
    1. 删除 sqllib/.ftok 文件。
    2. 运行 sqllib/bin/db2ftok 命令以生成新 .ftok 文件。
    对于多个数据库分区实例:
    1. 在 sqllib 所在的层创建另一个目录。
    2. 将 sqllib 中的所有内容移至新目录。
    3. 删除 sqllib。
    4. 将新目录重命名为 sqllib。

SQL1073N 节点目录发行版号不正确。

说明

节点目录发行版号与产品期望的发行版号不匹配。节点目录可能来自于前发行版。

用户响应

重新编目所有节点条目,并再次尝试运行该命令。

SQL1074N 密码参数的地址无效。

说明

应用程序使用了对此参数无效的地址。指向未分配缓冲区或缓冲区中字符串的地址没有 NULL 终止符。

无法处理该命令。

用户响应

确保应用程序使用有效地址,且输入字符串以 NULL 结束。

SQL1075N 数据库注释参数的地址无效。

说明

应用程序使用了对此参数无效的地址。指向未分配缓冲区或缓冲区中字符串的地址没有 NULL 终止符。

无法处理该命令。

用户响应

确保应用程序使用有效地址,且输入字符串以 NULL 结束。

SQL1076N 计数参数的地址无效。

说明

应用程序使用了对 count 参数无效的地址。

无法处理该命令。

用户响应

确保在应用程序中使用了有效地址。

SQL1077N 句柄参数的地址无效。

说明

应用程序使用了对 handle 参数无效的地址。

无法处理该命令。

用户响应

确保在应用程序中使用了有效地址。

SQL1078N 缓冲区参数的地址无效。

说明

应用程序使用了对 buffer 参数无效的地址。

无法处理该命令。

用户响应

确保在应用程序中使用了有效地址。

SQL1079N 节点名参数的地址无效。

说明

应用程序使用了无效的 nname 参数地址。指向未分配缓冲区或缓冲区中字符串的地址没有 NULL 终止符。

无法处理该命令。

用户响应

确保应用程序使用有效地址,且输入字符串以 NULL 结束。

SQL1080N local_lu 名称参数的地址无效。

说明

应用程序使用了对 local_lu 名称参数无效的地址。指向未分配缓冲区或缓冲区中字符串的地址没有 NULL 终止符。

无法处理该命令。

用户响应

确保应用程序使用有效地址,且输入字符串以 NULL 结束。

SQL1081N partner_lu 名称参数的地址无效。

说明

应用程序使用了对 partner_lu 参数无效的地址。指向未分配缓冲区或缓冲区中字符串的地址没有 NULL 终止符。

无法处理该命令。

用户响应

确保应用程序使用有效地址,且输入字符串以 NULL 结束。

SQL1082N 方式参数的地址无效。

说明

应用程序使用了对 mode 参数无效的地址。指向未分配缓冲区或缓冲区中字符串的地址没有 NULL 终止符。

无法处理该命令。

用户响应

确保应用程序使用有效地址,且输入字符串以 NULL 结束。

SQL1083N 不能创建数据库,因为无法处理数据库描述块,原因码:原因码

说明

应用程序发出了 CREATE DATABASE 命令,但因为下列其中一种原因而不能处理数据库描述符块 (DBDB):
1
DBDB 的地址无效。
2
DBDB 的 SQLDBDID 字段的值无效。它应设置为值 SQLDBDB1。
4
DBDB 的 SQLDBCSS 字段的值无效。使用 CLP 命令 CREATE DATABASE 时,指定的 COLLATE USING 选项值无效。
5
在 SQLDBUDC 中指定的整理值对于整理类型 SQL_CS_UNICODE 无效。使用 CLP 命令 CREATE DATABASE 时,指定的 COLLATE USING 选项值对于 UTF-8 代码集无效。
6
不能使用显式整理类型和隐式代码集来创建数据库。必须指定期望的代码集,或将整理保留为 SQL_CS_SYSTEM。使用 CLP 命令 CREATE DATABASE 时,必须指定期望的代码集和显式整理类型,或者使用不附带 COLLATE USING 选项的隐式整理。

无法处理该命令。

用户响应

更正错误,并重新提交命令。

SQL1084C 数据库管理器无法分配共享内存,因为已经达到操作系统内核内存限制。

说明

在某些操作系统上,某些内核参数的缺省值不是足够大,无法满足运行数据库的要求。如果任何其他软件与 DB2 数据库在同一系统上运行,那么其他软件将争用操作系统资源,这将使得配置内核参数更加困难。为了简化内核参数配置,在某些操作系统上启动实例时,数据库管理器会自动调整某些内核参数设置。此外,有一个称为 db2osconf 的工具,可以在某些操作系统上使用此工具来确定建议您在运行数据库系统时采用的最小操作系统内核设置值。

在执行活动(例如,激活数据库或者将数据库前滚)期间,如果由于已经达到操作系统内核内存限制(例如,Linux 上的 SHMMAX)而使得数据库管理器无法分配共享内存,就会返回此消息。

用户响应

通过执行下列其中一个或多个故障诊断步骤,对此错误作出响应:

  • 通过运行以下命令来生成数据库配置建议:
    DB2 AUTOCONFIGURE APPLY NONE
  • 增大操作系统内核设置值,此设置会限制可用于数据库管理器的操作系统内存量。
  • 通过减小 database_memory 配置参数的值来减少数据库使用的内存量。
  • 仅在 Linux 操作系统上:某些内核配置参数(例如,SHMMAX)的缺省值对于 DB2 LUW 来说不是足够大。请确定当前的内核配置参数设置值,并修改任何不是足够大的内核参数值。

如果在您执行这些故障诊断步骤之后仍然发生此错误,那么使用 db2support 实用程序来收集诊断信息,然后与 IBM 软件支持机构联系。

sqlcode:-1084

sqlstate:57019

SQL1085N 不能分配应用程序堆。

说明

应用程序不能与数据库相连,因为数据库管理器不能分配数据库配置文件中指定的应用程序堆的 4K 页。系统超过 4K 页。无法处理该命令。

用户响应

可以采用的解决方案包括:
  • 减小数据库配置文件中的应用程序堆大小(applheapsz)。
  • 减小数据库配置文件中的最大应用程序数。
  • 移除后台进程。
  • 安装更多的内存。

sqlcode:-1085

sqlstate:57019

SQL1086C 发生操作系统错误 错误

说明

命令收到来自操作系统的错误,它阻止进一步处理。

无法处理该命令。

用户响应

请参阅操作系统用户出版物以确定错误的性质。

SQL1087W 已成功地创建数据库或者对数据库进行升级,但是在打开列表文件 名称 时发生错误。DB2 实用程序未绑定至数据库。

说明

CREATE DATABASE 或 UPGRADE DATABASE 命令未能打开包含实用程序绑定文件列表的列表文件。该列表文件应位于 sqllib 子目录的 bnd 子目录中。

未将实用程序绑定文件绑定至已创建或者已升级的数据库。

用户响应

将实用程序与数据库进行绑定。在调用绑定程序时不要使用格式选项。

SQL1088W 已成功地创建数据库或者对数据库进行升级,但是在绑定实用程序时发生错误。实用程序未与数据库进行绑定。

说明

CREATE DATABASE 或 UPGRADE DATABASE 命令无法将实用程序绑定文件绑定至数据库。

未将实用程序绑定文件绑定至新创建的或者已升级的数据库。

用户响应

请执行下列操作:

  • 将实用程序与数据库进行绑定。在调用绑定程序时不要使用格式选项。
  • 在数据库服务器中绑定 db2schema.bnd 文件。

SQL1089W 已创建数据库,但实用程序的绑定被中断。 实用程序未与数据库进行绑定。

说明

将实用程序与数据库进行绑定时,CREATE DATABASE 被中断。可能已按下中断键序列。

实用程序绑定文件未与最新创建的数据库进行绑定。

用户响应

将实用程序与数据库进行绑定。在调用绑定程序时不要使用格式选项。

SQL1090C 预编译的应用程序和实用程序的发行版号无效。

说明

预编译的应用程序或实用程序的发行版号与安装的数据库管理器版本的发行版号不兼容。

如果应用程序正在使用下一级别的数据库管理器库或 DLL,同时又访问数据库管理器配置文件的已安装版本,也将发生此错误。

无法处理该命令。

用户响应

验证您的应用程序处理将获得的数据库管理器库或 DLL 是否没有更旧的版本。

如果问题仍然存在,那么使用当前数据库管理器重复预编译进程。只使用利用可兼容发行版级别的数据库管理器进行预编译的应用程序。

SQL1091C 数据库的发行版号不受支持。

说明

数据库的发行版号与实例的发行版号不同。此发行版号是在创建数据库或者对数据库进行升级时设置的,或者是在系统目录中定义的最高版本、发行版、修订版和修订包级别。

无法处理该命令。

如果在对数据库进行升级或者复原数据库期间发生错误,说明您正在尝试对具有不兼容发行版的数据库进行升级或复原。

如果在移除修订包之后的首次连接时出错,那么表示您尝试连接至仅在更高修订包级别才受支持的数据库。

用户响应

如果在对数据库进行升级或者复原数据库期间发生错误,那么必须首先将数据库升级到支持在您要升级到的 DB2 副本中进行数据库升级的发行版。

如果在移除修订包之后首次连接至数据库时发生错误,请从备份来复原数据库,然后从处于支持此数据库的修订包级别的 DB2 副本中发出“将数据库更新为当前级别”命令。

sqlcode:-1091

sqlstate:08004

SQL1092N 由于用户标识无权执行所请求的命令或操作,因此请求的命令或操作失败。用户标识:用户标识

说明

用户认证是使用 DB2 数据库系统外部的安全性工具(操作系统或另一产品的组成部分)完成的。授权是使用 DB2 工具(使用 DB2 表和配置文件)来执行的。当认证或授权发生问题时,可能会返回此消息。

由于多个代理程序在不同级别控制访问权(本地操作系统登录凭证、Windows 用户组、域、Kerberos 之类的第三方安全服务、命令的执行上下文、DB2 权限级别以及数据库对象等等),因此认证和授权问题的故障诊断非常复杂。

下面是一些有可能返回此消息的常见场景(按操作环境排列):

使用了组的 Windows 操作系统

以下是对使用了组的 Windows 环境中可能会返回此消息的场景的描述:

DB2 数据库配置:

  • 已安装数据库产品,并且数据库管理器实例用户设置为 Windows LocalSystem 帐户(或者设置为另一个本地 Windows 帐户)。
  • 未设置 DB2_GRP_LOOKUP 环境变量。

失败的操作:

  • 用户尝试使用远程域中定义的两部分用户标识来连接到数据库。

故障原因:

  • 由于未设置环境变量 DB2_GRP_LOOKUP,因此数据库管理器尝试在定义了该用户标识的位置对组进行枚举。但是,由于数据库管理器正在 LocalSystem 帐户的上下文中运行,无权访问网络,因此无法在定义了该用户标识的位置对组进行枚举。
使用了 Kerberos 的 Windows 操作系统

在使用了 Kerberos 认证的 Windows 环境中,当尝试使用不是域帐户的帐户来登录计算机时,可能会返回此消息。

使用了“扩展安全性”的 Windows 操作系统

在启用了“扩展安全性”的 Windows 环境中,如果并非本地 DB2USERS 组或 DB2ADMNS 组成员的用户标识尝试使用或修改数据库资源,那么可能会返回此消息。

轻量级目录访问协议 (LDAP) 环境

在 LDAP 环境中,如果用户标识或 DB2 Connect 网关无权执行 CATALOG DATABASE、CATALOG ... NODE 或者 CATALOG DCS DATABASE 命令,那么可能会返回此消息。

Windows 命令提示符

在 Windows Vista 或更高版本的 Windows 操作系统上,命令提示符可能具有标准的用户特权,即使用户具有管理特权也是如此。如果从只具有标准特权的命令提示符执行需要管理特权的命令,那么可能会返回此消息。

联合数据库环境

在联合环境中的联合服务器或联合数据源上,可能会发生此错误。

用户响应

通常,请通过执行下列故障诊断步骤对此错误作出响应:

  1. 与系统管理员或数据库管理员一起,收集关于给定用户标识所具有的特权和权限的信息。以下是收集关于给定用户标识的此类信息的方法示例:
    db2 SELECT * FROM TABLE    
    (SYSPROC.AUTH_LIST_GROUPS_FOR_AUTHID('<ID>'))
  2. 确定失败的所尝试操作。
  3. 将给定用户标识所具有的特权和权限与尝试的操作作比较。
  4. 使用另一个具有所需权限和特权的用户标识,或者通过执行下列一种或多种类型的管理操作将所需特权授予该用户标识:
    • 将该用户标识添加到必需的组
    • 改变该用户标识所属的组的权限或特权
    • 使用 GRANT 语句,专门授权该用户标识执行该操作

以下是响应特定场景的方式的一些示例:

使用了 Kerberos 的 Windows 操作系统

在使用了 Kerberos 认证的 Windows 环境中,请使用域帐户来登录计算机。

使用了“扩展安全性”的 Windows 操作系统

在启用了“扩展安全性”的 Windows 环境中,要使用或修改数据库资源,请执行下列其中一项操作:

  • 将该用户标识添加到本地 DB2USERS 组或 DB2ADMNS 组。
  • 使用作为本地 DB2USERS 组或 DB2ADMNS 组成员的用户标识。
轻量级目录访问协议 (LDAP) 环境

在 LDAP 环境中,如果用户标识或 DB2 Connect 网关无权执行 CATALOG DATABASE、CATALOG ... NODE 或者 CATALOG DCS DATABASE 命令,请使用 catalog_noauth 数据库管理器配置参数使用户能够编目和取消编目数据库及节点或者 DCS 及 ODBC 目录,并且不具有 SYSADM 权限。

Windows 命令提示符

要使用完全管理特权来运行命令,请执行下列步骤:

  1. 使用 DB2 数据库安装过程中创建的“命令窗口 - 管理员”快捷方式,打开将使用完全管理特权运行的命令窗口。
  2. 从使用完全管理特权运行的命令窗口中启动命令。
联合环境

确定是联合服务器返回了错误还是联合数据源返回了错误,然后执行本消息中描述的故障诊断步骤。

SQL1093N 用户没有登录。

说明

用户必须先登录才可以处理任何需要权限的命令。此错误的可能原因包括:
  • 无法获得用户标识。
  • 尝试登录时发生意外的操作系统错误。
  • 应用程序正在后台进程中运行。
  • 用户取消了尝试的登录。

无法处理该命令。

用户响应

用有效的用户标识登录,并重新提交该命令。如果几个并发进程都在尝试登录,那么等一会儿重试登录过程。

sqlcode:-1093

sqlstate:51017

SQL1094N 不能访问节点目录,因为正在对其进行更新。

说明

当正在更新节点目录时,不能扫描或使用该目录。同样,如果因任何原因已经访问了目录,那么不能访问该目录以进行更新。

无法处理该命令。

用户响应

在完成更新之后重新提交该命令。

sqlcode:-1094

sqlstate:57009

SQL1095N 已经打开了 8 个节点目录扫描。

说明

在此进程中已经打开了 8 个节点目录扫描,不允许打开 8 个以上的节点目录扫描。

无法处理该命令。

用户响应

发出一条或多条 CLOSE NODE DIRECTORY SCAN 命令。重新提交该命令。

sqlcode:-1095

sqlstate:54029

SQL1096N 对于此节点类型,该命令无效。

说明

在不支持该命令的节点上发出了命令,或者发现对此节点类型设置的系统环境不正确。例如,在客户机节点上数据库作为 LOCAL 来编目。

无法处理该命令。

用户响应

验证对于该节点类型,命令和参数是否正确。还要验证处理命令所在的环境是否正确。重新提交该命令。

SQL1097N 在节点目录中找不到节点名。

说明

在远程数据库的数据库目录中列示的节点名或者在连接命令中指定的节点名未在节点目录中编目。

无法处理该命令。

联合系统用户:数据源也可能会检测到此情况。

用户响应

验证在数据库目录中列示的节点名或连接命令的对象在节点目录中是否已编目。如果该节点未列示在节点目录中,那么提交 CATALOG NODE 命令。

联合系统用户:除这些操作之外,还验证所有 SYSCAT.SERVERS 条目中列示的节点名是否正确。如果该节点未列示在节点目录中,且服务器是 DB2 系列的一个成员,那么对该节点发出 CATALOG NODE 命令。

sqlcode:-1097

sqlstate:42720

SQL1098N 应用程序已经与此数据库相连。

说明

请求了与数据库相连,但应用程序已经与指定的数据库相连。

无法处理该命令。

用户响应

不需要执行任何操作。

sqlcode:-1098

sqlstate:53056

SQL1099N 软盘有写保护。

说明

尝试对驻留在具有写保护的软盘上的数据库进行写操作。

无法处理该语句。

用户响应

验证您是否正在使用正确的软盘。如果有必要,请除去软盘的保护。

SQL1100W 尚未在“节点目录”中编目在 Catalog Database 命令中指定的节点名 名称

说明

Catalog Database 命令指定了节点名 名称,但未在节点目录中编目该节点名。必须先编目节点名,才可使用远程数据库。

成功完成 CATALOG DATABASE 命令。

用户响应

发出 CATALOG NODE 命令。

SQL1101N 不能以指定的授权标识和密码访问节点 节点名 上的远程数据库 名称

说明

请求了与节点 节点名 上的远程数据库 名称 的连接,但是远程节点不接受对此节点(在远程授权表中或在运行时)指定的授权标识和密码组合。

联合系统用户:当出现以下任一情况时也会发生此错误:

  • 没有用户映射,并且远程授权标识或远程密码与在连接至 DB2 联合数据库时所指定的授权标识和密码不匹配。
  • 用户映射未指定 REMOTE_PASSWORD 选项,以及连接到 DB2 联合数据库时未指定密码。
  • 用户映射未指定 REMOTE_PASSWORD 选项,以及连接到 DB2 联合数据库时远程密码和指定密码不匹配。
  • 用户映射未指定 REMOTE_AUTHID 选项,以及连接到 DB2 联合数据库时远程授权标识和指定授权标识不匹配。
  • 远程授权标识或远程密码和用户映射指定的不匹配。

无法处理该请求。

用户响应

使用远程系统的有效授权标识和密码的组合来重新提交该请求。

sqlcode:-1101

sqlstate:08004

SQL1102N 未指定数据库名称。

说明

未提供数据库名称以继续对数据库进行升级。

无法处理该语句。

用户响应

指定要升级的数据库名称。

SQL1103W 成功完成了 UPGRADE DATABASE 命令。

说明

成功完成了 UPGRADE DATABASE 命令。如果在非 HADR 备用数据库上发出,那么可立即访问此数据库。

注意,如果数据库已经处于当前级别并且未进行升级,那么也将返回此消息。

如果在 HADR 备用数据库上发出,那么数据库元数据已升级至当前级别并且 HADR 重放服务已在后台开始。数据库将处于“升级中”状态,并且直到它已重放从主数据库接收到的所有升级日志记录后,才能接受新连接(如果已启用“在备用项上读取”)。

用户响应

如果在非 HADR 备用数据库上发出,请执行升级后任务。

如果在 HADR 备用数据库上发出,请在主数据库上发出 UPGRADE DATABASE 命令。

SQL1104N 程序名参数的地址无效。

说明

应用程序使用了对程序名无效的地址。

无法处理该命令。

用户响应

在应用程序中使用正确的地址。

SQL1105N 在“远程应用程序界面”过程中不允许 SQL CONNECT RESET 语句。

说明

远程应用程序过程中包含 SQL CONNECT RESET 语句。

不允许继续执行远程过程。

用户响应

除去 SQL CONNECT RESET 语句,并再次尝试执行该远程过程。

sqlcode:-1105

sqlstate:38003

SQL1106N 装入了指定的 DLL 名称 模块,但不能执行函数 函数

说明

找不到 DLL(动态链接库)中的函数。

无法处理该命令。

用户响应

确保正确构建了 DLL 模块。请参阅定义文件中的模块。

sqlcode:-1106

sqlstate:42724

SQL1107N 装入指定的 DLL 名称 时接收到中断。

说明

装入 DLL(动态链接库)模块时,命令被中断,可能是被 Ctrl+Break 中断的。

处理停止。

用户响应

重新提交该命令。

sqlcode:-1107

sqlstate:42724

SQL1108N 装入指定的 DLL 名称 时接收到意外的 I/O 错误或操作系统错误。

说明

尝试装入程序名字段中指定的 DLL(动态链接库)模块时发生了意外错误。

无法处理该命令。

用户响应

重新提交当前命令。如果还有错误,那么重新安装数据库管理器。

如果重新安装并不更正该错误,那么如果可能,记录消息号(SQLCODE)和 SQLCA 中的所有信息。

如果跟踪处于活动状态,那么在操作系统命令提示符处调用“独立跟踪设施”。然后与技术服务代表联系。

sqlcode:-1108

sqlstate:42724

SQL1109N 由于数据库管理器无法装入以下 DLL,因此未处理此命令:文件名

说明

当数据库管理器无法装入动态链接库 (DLL) 时,返回此消息。

用户响应

通过执行下列故障诊断步骤对此错误作出响应:

  1. 确定给定的库文件与哪个产品组件相关联。
  2. 验证相关联产品组件的安装。(例如,DB2 数据库的各个库的路径必须包括在环境变量 LIBPATH 中。)

sqlcode:-1109

sqlstate:42724

SQL1110N 提供的数据区无效,不能使用。

说明

未正确初始化数据区。

无法处理该命令。

用户响应

确保正确初始化了由用户提供的输入 SQLDA 或输出 SQLDA 字段。

SQL1111N 指定的程序名 名称 无效。

说明

DLL(动态链接库)模块或程序名语法不正确。

无法处理该命令。

用户响应

确保正确地指定了 DLL 或程序名。

sqlcode:-1111

sqlstate:42724

SQL1112N 没有足够的系统资源用来装入指定的 DLL 名称

说明

没有足够的随机存取存储器 (RAM) 用来装入指定的 DLL(动态链接库)模块。

无法处理该命令。

用户响应

停止该应用程序。可以采用的解决方案包括:
  • 将 CONFIG.SYS 文件中的 MEMMAN NO SWAP、NO MOVE 选项更改为 SWAP、MOVE。
  • 移除后台进程。
  • 减小定义内存分配的配置参数的值。
  • 安装更多随机存取存储器 (RAM)。

sqlcode:-1112

sqlstate:42724

SQL1113N 在输出 SQLDA 中,sqlvar n 的数据类型从 类型-1 更改为 类型-2

说明

远程存储过程更改了输出 SQLDA 中第 n 个 sqlvar 的数据类型;n 是第一个不匹配的 sqlvar 的序号。

存储过程没有返回任何数据。

用户响应

更正远程存储过程,以便不更改输出 SQLDA 中的数据类型信息。

sqlcode:-1113

sqlstate:39502

SQL1114N 在输出 SQLDA 中,sqlvar n 的数据长度 从 长度-1 更改为 长度-2

说明

远程存储过程更改了输出 SQLDA 中第 n 个 sqlvar 的数据长度;n 是第一个不匹配的 sqlvar 的序号。

存储过程没有返回任何数据。

用户响应

更正远程存储过程,以便不更改输出 SQLDA 中的数据长度信息。

sqlcode:-1114

sqlstate:39502

SQL1115N 在输出 SQLDA 中,sqlvar 的数目从 数量-1 更改为 数量-2

说明

远程过程更改了输出 SQLDA 中的 sqld 字段;sqld 是在 SQLDA 中使用的 sqlvar 的数目。

存储过程没有返回任何数据。

用户响应

更正远程存储过程,以便不更改输出 SQLDA 中的 sqld 字段。

sqlcode:-1115

sqlstate:39502

SQL1116N 连接或激活数据库 name 失败,这是因为该数据库处于 BACKUP PENDING 状态。

说明

指定的数据库需要进行备份,以便为前滚恢复提供一个起始点。

用户响应

通过调用 BACKUP 例程来备份该数据库,或者,如果不需要执行前滚恢复,请将数据库配置参数 LOGARCHMETH1 和 LOGARCHMETH2 设置为 OFF。

在 DB2 pureScale 环境中,必须执行完全脱机数据库备份。

sqlcode:-1116

sqlstate:57019

SQL1117N 因为处于 ROLL-FORWARD PENDING 状态,所以不能连接或激活数据库 名称

说明

允许指定的数据库进行前滚恢复,它已经复原,但是没有前滚。

没有建立连接。

联合系统用户:数据源也可能会检测到此情况。

用户响应

前滚数据库,或指示您不希望通过使用 ROLLFORWARD 命令来前滚。注意,如果不前滚数据库,那么将不对该数据库应用自从上次备份该数据库以来写入的记录。

联合系统用户:如果需要,请找出使请求被拒绝的数据源中的问题,并对该数据源执行适当的恢复操作以使数据源一致。

sqlcode:-1117

sqlstate:57019

SQL1118N 因为先前备份不完整,所以不能连接或激活数据库 名称

说明

数据库处于不一致状态,因为在备份期间发生了系统错误。

没有建立连接。

联合系统用户:数据源也可能会检测到此情况。

用户响应

发出 BACKUP 命令,然后再次尝试运行该命令。

联合系统用户:如果有必要,请找出导致请求失败的数据源中的问题,并在再次尝试运行该命令之前对该数据源发出 BACKUP 命令。

sqlcode:-1118

sqlstate:57019

SQL1119N 因为先前复原不完整或者仍在进行,所以不能连接或激活数据库 名称

说明

数据库处于不一致状态,因为在复原函数期间发生了系统错误或者仍在进行复原。

没有建立连接。

联合系统用户:数据源可能会检测到此情况。

用户响应

确保在成功复原数据库之后才尝试重新发出当前命令。

联合系统用户:如果有必要,请找出导致请求失败的数据源中的问题,并在再次尝试运行该命令之前对该数据源发出 RESTORE 命令。

sqlcode:-1119

sqlstate:57019

SQL1120N 因为先前备份或复原不完整,所以不能连接或激活数据库 名称

说明

数据库处于不一致状态,因为在备份或复原期间发生了系统错误。不能确定是否正在进行备份或复原。

没有建立连接。

联合系统用户:数据源也可能会检测到此情况。

用户响应

发出 BACKUP 或 RESTORE 命令,然后再次尝试运行该命令。

联合系统用户:如果有必要,请找出导致请求失败的数据源中的问题,并在再次尝试运行该命令之前对该数据源发出 BACKUP 或 RESTORE 命令。

sqlcode:-1120

sqlstate:57019

SQL1121N 节点结构参数的地址无效。

说明

应用程序使用了无效的节点结构参数地址。地址指向未分配的缓冲区,或者缓冲区不够大,无法装下必需的输入。

无法处理该命令。

用户响应

验证程序是否分配了所需要的缓冲区,重新提交该命令。

SQL1122N 协议结构参数的地址无效。

说明

应用程序使用了无效的协议结构参数地址。地址指向未分配的缓冲区,或者地址指向不正确的协议缓冲区。

无法处理该命令。

用户响应

验证程序是否根据节点结构中的协议字段来分配了必需的缓冲区,并重新提交该命令。

SQL1123N 协议 类型 无效。

说明

在节点结构中对 Catalog 命令指定的协议类型不表示识别的值。在 sqlenv 头文件中定义有效协议类型。

无法处理该命令。

用户响应

验证节点结构中的协议类型,并重新提交该命令。

SQL1124N 远程工作站名 名称 无效。

说明

未在 Catalog 命令的协议结构中指定远程工作站名称,或者指定的远程工作站名称包含无效字符。

无法处理该命令。

用户响应

验证在远程工作站名中指定的字符。用有效的工作站名重新提交该命令。

SQL1125N 适配器号 编号 无效。

说明

在 Catalog 命令的协议结构中指定的适配器号无效。

无法处理该命令。

用户响应

验证适配器号是否有效,并重新提交该命令。

SQL1126N 网络标识 标识 无效。

说明

在 APPN 协议结构中对 Catalog 命令指定的网络标识无效。网络标识标识远程逻辑单元(LU)所在的 SNA 网络。网络标识必须具有 1 到 8 个字符。有效字符是 A 到 Z、a 到 z、0 到 9、#、@ 和 $。第一个字符必须是字母或特殊字符:#、@ 或 $。系统会将小写字符转换为大写字符。

无法处理该命令。

用户响应

验证在网络标识中指定的字符。用有效的网络标识重新提交该命令。

SQL1127N 远程工作站名 名称 无效。

说明

在 APPN 协议结构中对 Catalog 命令指定的远程逻辑单元(LU)名称无效。远程 LU 名就是远程 SNA 逻辑单元名,且必须是 1 到 8 个字符。有效字符是 A 到 Z、a 到 z、0 到 9、#、@ 和 $。第一个字符必须是字母或特殊字符:#、@ 或 $。系统会将小写字符转换为大写字符。

无法处理该命令。

用户响应

验证在远程 LU 名中指定的字符。用远程 LU 名重新提交该命令。

SQL1128W 继续装入操作,但未创建一致点。原因码:原因码

说明

将数据装入表时,可使装入实用程序在每次处理给定数目的行后建立一致点。一致点允许中断的装入操作从最新一致点重新启动。

您可以使用装入命令的 SAVECOUNT 参数,指定在一致点之间装入多少行。某些实用程序(例如 db2move)使用装入实用程序,并设置 SAVECOUNT 值(缺省值)。

在使用一致点方面,存在一些限制。当尝试以不受支持的方式使用一致点时,装入操作会继续,但不会创建一致点。在两种常见场景中会显示此消息:

  • 直接调用 LOAD 命令,且指定了 SAVECOUNT 参数
  • 装入实用程序由其他实用程序使用,且缺省情况下,后者指定了 SAVECOUNT 值

原因码指示了遇到的限制:

1

将数据装入 MDC 或 ITC 表时,不支持一致点。

2

指定文件类型不支持一致点。

3

将数据装入分区表时,不支持一致点。

4

将数据装入包含 XML 列的表时,不支持一致点。

5

将数据装入按列组织的表时,不支持一致点。

用户响应

不需要执行任何操作。装入操作继续,且不使用一致点。

SQL1129N 无法启动新的存储过程进程,因为没有足够的资源用来创建新进程。

说明

无法启动新的存储过程进程,因为没有足够的资源用来创建新进程。

用户响应

执行下列其中一项操作:

  • 减少使用 DB2 的用户数
  • 增大系统进程限制。

sqlcode:-1129

sqlstate:42724

SQL1130N 未能启动新的存储过程进程,因为已经达到服务器上允许存在的最大进程数。

说明

未能启动新的存储过程进程,因为已经达到服务器上允许同时存在的最大进程数。

用户响应

增大 fenced_pool 配置参数的值。

sqlcode:-1130

sqlstate:42724

SQL1131N 存储过程进程已异常终止。例程名称:例程名称。特定名称:特定名称

说明

DB2 的体系结构设计为便于应用程序在与数据库服务器不同的地址空间中运行。在另外的地址空间中运行应用程序,可防止应用程序编程错误导致覆盖数据库管理器内部缓冲区或文件,还可以防止应用程序错误导致数据库管理器崩溃。受防护方式进程 (db2fmp) 负责在不同于数据库服务器的地址空间中执行受防护存储过程和用户定义函数。

如果在运行所指定的例程时 db2fmp 进程异常终止,那么会返回此消息。db2fmp 进程可能由于许多原因而异常终止,其中包括下列原因:

  • 在 db2fmp 进程所执行的存储过程或者用户定义的函数的实现中存在编码错误(例如,除数为 0,或者存在超出范围的指针引用)。
  • 另一个进程使用信号(例如,终止信号 SIGTERM)终止了 db2fmp 进程。
  • 安装 Java 例程时 SQLJ.INSTALL_JAR 失败,因为受防护用户没有在服务器上创建必需目录或写入必需目录的许可权。

用户响应

通过执行下列步骤,对此错误作出响应:

  1. 请查看存储过程或者用户定义的函数的代码并对其进行单元测试,从而确保此存储过程或者用户定义的函数中不存在可能会导致异常终止的编码错误。
  2. 请查看正在系统上运行的所有应用程序以及正在访问系统的用户的活动,从而确保其他应用程序或用户将不会向 db2fmp 进程发送终止信号。
  3. 请再次运行此存储过程。

如果因为 SQLJ.INSTALL_JAR 失败而返回此消息,请将受防护标识添加至实例所有者组。

sqlcode:-1131

sqlstate:38503

SQL1132N 不允许在存储过程中执行此命令。

说明

在存储过程的作用域内执行了非法命令。

不允许继续执行过程。

用户响应

除去过程中的非法命令,然后再次尝试。

sqlcode:-1132

sqlstate:38003

SQL1133N 在 DARI(存储过程)函数内修改了输出 SQLDA 的 sqlvar 内的指针地址(索引 = n)。

说明

已经在用户预编译的 DARI 功能内改变了输出 SQLDA 的 sqlvar 中的“sqlind”或“sqldata”指针。

存储过程没有返回任何数据。

用户响应

更正输出 SQLDA 内指示的 sqlvar 的使用情况以便在 DARI(存储过程)函数例程内不更改指针地址。

sqlcode:-1133

sqlstate:39502

SQL1134N 对于数据库认证类型 CLIENT,在存储过程的作用域内不允许运行此命令。

说明

如果数据库认证类型是 CLIENT,那么不允许在存储过程中运行需要 SYSADM 权限的命令。

存储过程没有返回任何数据。

不允许继续执行过程。

用户响应

除去过程中的未经授权的命令,然后重新运行存储过程。

sqlcode:-1134

sqlstate:38003

SQL1135N 创建数据库时,对段数指定的值无效。

说明

对段数指定的值超出了范围。有效范围是 1 到 256。

用户响应

再分配段数,并尝试再次创建数据库。

SQL1136N 创建数据库时,对缺省表空间扩展数据块大小(dft_extentsize)指定了无效值。

说明

对缺省表空间扩展数据块大小(dft_extentsize)指定的值超出了范围。有效范围是 2 到 256。

用户响应

更正表空间扩展数据块大小,然后再次尝试。

SQL1137W 删除数据库 数据库别名 时,数据库管理器不能移除数据库路径或某些容器。要求进行清除。

说明

当尝试移除容器或数据库目录时,不能访问容器列表,或者发生了一些故障。

如果您正在使用集群管理器,那么当数据库管理器无法从集群管理器配置中移除给定数据库别名的容器路径,可能会返回此错误。集群管理器中生成的错误消息将记录在 db2diag 日志文件中。

用户响应

可以使用操作系统命令手动移除系统管理的容器(目录)和数据库管理的文件容器。要释放设备容器,请与 IBM 服务代表联系以获得帮助。

如果已通过“新建日志路径”配置参数更改了日志目录,那么手动卸下日志目录文件系统,并移除日志和数据库目录。

如果您正在使用集群管理器,那么更正问题并从集群管理器配置中移除该路径:

  • 查看 db2diag 日志文件,以获取集群管理器中生成的错误消息。
  • 对 db2diag 日志文件中的集群管理器错误消息作出响应,以更正导致集群管理器无法从其配置中移除该路径的底层问题。
  • 使用集群管理器的工具和实用程序从集群管理器配置中移除此数据库的容器路径。

SQL1138W 迁移唯一索引 名称,以支持延迟的唯一性检查。未创建新索引。

说明

对现有索引尝试了 CREATE INDEX 操作。因为尚未迁移索引以支持延迟唯一性检查,所以执行了此迁移。

唯一索引的迁移格式将允许对多行进行更新,以便在更新语句结束时而不是在更新每行时检查索引列的唯一性。

用户响应

不需要执行任何操作。

sqlcode:+1138

sqlstate:01550

SQL1139N 表空间的总大小太大。

说明

当前表空间的大小太大。REGULAR 表空间的大小被限制为 0x01000000(16777216)页,而 LARGE 和 TEMPORARY 表空间的大小被限制为 0x7FFF FEFF(2147483391)页。

用户响应

查阅管理通知日志以了解详细信息。减小表空间的大小,并更正 SQL 语句。

sqlcode:-1139

sqlstate:54047

SQL1140W 成本类别 成本类别 中的估计处理器成本 估计数量-1 处理器秒数(估计数量-2 个服务单元)超过了资源限制警告阈值的 限制数量 个服务单元。

说明

预编译动态 INSERT、UPDATE、DELETE 或 SELECT SQL 语句所导致的成本估计值超过了在资源限制规范表(RLST)中指定的警告阈值。

如果 DB2 的成本类别值为“B”,那么也会发出此警告,并且在 RLST 的 RLF_CATEGORY_B 列中指定的缺省操作是发出警告。
estimate_amount1
如果要执行已预编译好的 INSERT、UPDATE、DELETE 或 SELECT 语句时的成本估计(以处理器秒计)。
estimate_amount2
执行预编译的 INSERT、UPDATE、DELETE 或 SELECT 语句时的成本估计(以服务单元计)。
cost-category
此 SQL 语句的 DB2 的成本类别。可能值是 A 或 B。
limit-amount
警告阈值(以服务单元计)是在 RLST 的 RLFASUWARN 列中指定的。

成功地预编译了动态 INSERT、UPDATE、DELETE 或 SELECT 语句。如果执行已预编译好的语句时超过了在 RLST 中指定的 ASUTIME 值,那么可能会发出 SQLCODE -905。

用户响应

确保有应用程序逻辑用来处理警告,以便允许执行语句,或停止执行语句。如果因为成本类别值为“B”而返回了此 SQLCODE,那么原因可能是语句正在使用参数标记,或某些统计信息对于所引用的表和列不可用。确保管理员已在所引用的表上运行了实用程序 RUNSTATS。还可能是因为执行语句时将调用 UDF,或者对于 INSERT、UPDATE 或 DELETE 语句,在已更改的表上定义了触发器。检查此语句的 DSN_STATEMNT_TABLE 或 IFCID 22 记录,以便找到此 SQL 语句被置于成本类别“B”中的原因。

如果警告是由消耗了太多处理器资源的 SQL 语句引起的,那么尝试重写该语句以便更有效地执行该语句。另一个选项是请求管理员来增大 RLST 中的警告阈值。

sqlcode:+1140

sqlstate:01616

SQL1141N 操作完成,但发生了错误或警告。详细信息位于需要使用 db2inspf 实用程序来格式化的结果文件 文件名 中。

说明

在分区数据库环境中,文件扩展名与数据库分区节点号相对应。文件位于由 DIAGPATH 数据库管理器配置参数指定的目录中。

用户响应

使用 db2inspf 实用程序来格式化检查数据结果文件 文件名

SQL1142N 不能完成操作,因为已经在使用文件 文件名

说明

已经有现有文件正在使用在 INSPECT 命令中指定的文件名。

无法处理该命令。

用户响应

使用未使用的另一文件名重新提交该命令。或者移除现有文件 文件名 并重新提交该命令。

在分区数据库环境中,文件扩展名与数据库分区节点号相对应。文件位于由 DIAGPATH 数据库管理器配置参数指定的目录中。

SQL1143N 不能完成操作,因为文件 文件名 发生了文件错误。

说明

由于 I/O 错误,不能访问文件。系统无法打开、读取或写入文件。文件可能不完整,或者磁盘可能已满。

实用程序停止了处理过程。

用户响应

记录来自 SQLCA 的所有错误信息(如果有可能)。查看诊断日志文件以了解其他信息。

在数据库分区环境中,文件扩展名与数据库分区节点号相对应。文件位于由 DIAGPATH 数据库管理器配置参数指定的目录中。

sqlcode:-1143

sqlstate:5UA0A 和 5UA0B

SQL1144N 由于创建索引失败,当前事务已回滚。底层 sqlcode:sqlcode

说明

在同一事务中,删除了关于表的最后保留的索引,然后创建了关于同一个表的新索引。索引创建由于错误 sqlcode 而失败,或者被 ROLLBACK TO SAVEPOINT 语句回滚(sqlcode=0)。当关于表的最后保留的索引的删除索引尚未落实时,就不能成功完成索引创建的回滚。当存在这些情况时,就会回滚整个事务。注意,还可以通过在 ALTER TABLE 语句中添加或删除唯一键或主键约束来创建或删除索引。

运行时标记 sqlcode 指示返回的底层 sqlcode。

用户响应

如果有可能,在创建关于同一个表的新索引之前落实对索引的删除,以避免回滚整个事务。

如果 sqlcode 不是 0,那么参阅 sqlcode 的消息以进行更正操作。需要再次发出在回滚事务中的所有语句。如果 sqlcode 为零,并且在保存点作用域中删除了索引,那么在删除关于同一个表的旧索引之前,可能需要对语句进行重新排序以便创建新索引。如果是在同一 ALTER TABLE 语句中删除和添加唯一键或主键约束,那么可能需要用两条语句来完成此操作,在第一条语句中执行添加(ADD),而在第二条语句中执行删除。

sqlcode:-1144

sqlstate:40507

SQL1145N 当使用网关集中器时,PREPARE 语句不受支持。原因码:原因码

说明

由于下列原因之一,语句失败,原因码 分别为:
1
当网关集中器功能部件为 ON 时,不支持嵌入式 SQL 中的动态预编译语句。在此配置中,仅当客户机是 CLI 应用程序时,才支持动态预编译语句。
2
当网关集中器功能部件为 ON 时,不支持动态预编译 SET 语句。

用户响应

根据原因码的不同,请执行下列操作:
1
更改应用程序以对动态 SQL 语句使用 CLI,或更改应用程序以使用静态 SQL。
2
对 SET 语句使用 EXECUTE IMMEDIATE。

sqlcode:-1145

sqlstate:560AF

SQL1146N 没有关于表 表名 的任何索引。

说明

为索引重组指定的 表名 没有任何索引。

用户响应

使用有效的表名重新提交该命令。

SQL1147W 对于 MDC 和 ITC 表,忽略了 TOTALFREESPACE。

说明

因为对于 MDC 和 ITC 表,表可用空间是严格管理的,所以 TOTALFREESPACE 文件类型修饰符是不必要的,将被忽略。

用户响应

不需要执行任何操作。

SQL1148N 需要刷新索引。然而,索引驻留在当前处于备份暂挂状态的表 空间中,无法刷新索引。

说明

需要刷新索引,然而,索引驻留在当前处于备份暂挂状态的表空间中,无法刷新索引。

用户响应

完成数据库或表空间备份并重新提交查询或命令。

SQL1149N 返回带有简短文本 clp-消息简短文本 的 CLP 错误 clp-消息标识。请参阅 CLP 消息文档以了解详细信息。

说明

遇到了 CLP 错误。使用 clp-消息标识 信息来查找所指示的 CLP 消息的适当消息详细信息。

用户响应

请参阅 CLP 消息信息,以了解有关要执行的操作的详细信息。

sqlcode:-1149

sqlstate:5U007

SQL1150N 用户标识参数的地址无效。

说明

应用程序使用了对此参数无效的地址。指向未分配缓冲区或缓冲区中字符串的地址没有 NULL 终止符。

无法处理该命令。

用户响应

确保应用程序使用有效地址,且输入字符串以 NULL 结束。

SQL1151N Load 实用程序 REMOTEFETCH 介质选项无效。原因码:原因码

说明

调用 Load 实用程序时使用了 REMOTEFETCH 介质类型,但指定了一个或多个不兼容或无效的自变量。这是由下列其中一个原因引起的:
1
服务器不支持 REMOTEFETCH 介质类型。
2
未指定源数据库名称。
3
指定了密码字段,但未指定用户标识字段。
4
指定了源表名字段或模式字段中的其中一个字段,但未指定另一个字段。
5
同时指定了源表名字段和源语句字段。
6
既未指定源表名字段也未指定源语句字段。
7
指定的隔离级别无效。
8
其中一个指定的自变量超出该自变量的最大适用大小。
9
未正确地设置 SQLU_REMOTEFETCH_ENTRY API 结构。

用户响应

与每个原因码相对应的响应如下所示:
1
确保服务器级别为版本 9 或更高版本。
2
确保指定了源数据库名称。此字段是必需的。
3
如果未指定用户标识字段,那么不要指定密码字段。
4
如果提供的是源表名而不是源查询,那么确保同时指定源表名和模式。
5
指定源表名和模式,或者指定源语句,但不要同时指定这两者。
6
指定源表名和模式,或者指定源语句。
7
确保指定的隔离级别正确。
8
确保提供的自变量及其长度标记(API)全都有效。
9
确保正确地设置并初始化了 SQLU_REMOTEFETCH_ENTRY API 结构。未使用的字段应该为 NULL。应该设置长度值。

SQL1152N 实用程序优先级无效。

说明

指定的优先级不在合法范围 0 - 100 之内。

用户响应

重新发出命令并指定有效的优先级。

SQL1153N 实用程序标识 实用程序标识 不存在。

说明

找不到指定的实用程序标识。指定了无效的标识,或者该实用程序已完成。

用户响应

验证该实用程序是否存在并重新提交命令。要确定该实用程序是否已完成,请复查数据库管理器快照数据。

SQL1154N 未能设置不支持调速的实用程序的优先级。

说明

已尝试对不支持调速的实用程序进行调速。

用户响应

实用程序将继续未调速地运行。

SQL1155W 超出数据类型的范围的数值已经被适当地替换为最大值或最小值。

说明

要为 ADMIN_CMD 过程产生的结果集中的一列指定的值大于该列的数据类型的最大值,或者小于该数据类型的最小值。如果该值大于最大值,那么已指定该数据类型的最大值。如果该值小于最小值,那么已指定该数据类型的最小值。对于 SMALLINT 数据类型,为最大值指定的值为 32767,最小值为 -32768。对于 INTEGER 数据类型,为最大值指定的值为 2147483647,最小值为 -2147483648。对于 BIGINT 数据类型,为最大值指定的值为 9223372036854775807,最小值为 -9223372036854775808。

用户响应

请参阅 db2diag 日志文件,以便了解 ADMIN_CMD 过程返回的实际值。

sqlcode: +1155

sqlstate:01608

SQL1156N 实用程序操作标识无效。

说明

提供的实用程序操作标识无效。它不能为空,并且它必须是先前从 SYSPROC.ADMIN_CMD 过程中为它执行的实用程序返回的值。但是,一旦由 SYSPROC.ADM_REMOVE_MSGS 过程从服务器中除去了消息,就不再可以使用实用程序操作标识来表示服务器上的消息。

用户响应

既未从服务器中检索消息,也未从服务器中除去消息。验证是否提供了正确的值。SYSPROC.ADMIN_CMD 过程在第一个结果集的 MSG_RETRIEVAL 和 MSG_REMOVAL 列返回 SQL 语句。它们包含与正在执行的实用程序相对应的操作标识。使用这些 SQL 语句来检索或除去消息。

sqlcode:-1156

sqlstate:5U008

SQL1157N 在触发器中不能调用例程 例程名

说明

不允许在触发器中调用例程 例程名。触发器不支持执行 API、执行 COMMIT 语句和返回结果集。

用户响应

从触发器定义中除去例程引用。

sqlcode:-1157

sqlstate:42987

SQL1158N 限制访问目录 目录名

说明

目录 目录名 可能包含数据库敏感信息,因此要限制对其进行访问。为了维护数据库完整性,应用程序不能在此目录下创建新文件、读取文件、写入文件或者删除文件。

用户响应

指定另一个目录名。

sqlcode:-1158

sqlstate:42832

SQL1159N 初始化 IBM Data Server Provider for .NET 期间发生错误。原因码:原因码

说明

可以使用 IBM Data Server Provider for .Net 来访问 IBM 数据库系统。

当数据库产品安装出现问题时,将返回此消息。如果启用了 Windows 扩展安全性功能,并且用来启动 Internet 信息系统 (IIS) 服务的标识并不隶属于 DB2ADMNS 组或 DB2USERS 组,那么也可能会返回此消息。

此消息的原因码仅适用于 IBM 支持人员。

用户响应

通过执行下列其中一项或多项操作,对此消息作出响应:

  • 如果这是第一次在此计算机上安装数据库产品,请查看安装日志以找出所有可能的错误,然后从添加或删除程序控制面板 applet 运行数据库产品修复操作。
  • 如果启用了 Windows 扩展安全性功能,请确保使用数据库产品的应用程序标识和用户标识属于 DB2ADMNS 组或 DB2USERS 组。
  • 卸载数据库产品,然后再次重新安装数据库产品。

如果错误仍存在,请收集下列诊断信息并与 IBM 支持机构联系:

  • 随此消息返回的原因码
  • 安装日志

SQL1160N 不能装入 DOS 网络协议 TSR。

说明

尚未装入指定的通信协议的“终止并驻留”(TSR)网络驱动程序。在尝试使用网络通信之前,必须装入 TSR。

用户响应

确保已成功装入指定的通信协议的 TSR,然后再次运行应用程序。

SQL1161W 协调处理失败。在 DB2 Data Links Manager 中未定义 DataLink 列。查阅管理通知日志以了解详细信息。

说明

在 DB2 Data Links Manager 上丢失了关于表的一个或多个 DataLink 列的元数据信息。协调处理已失败。表处于“DataLink 协调不可能”(DRNP)状态。

用户响应

要使表脱离“DataLink 协调不可能”状态,遵循《管理指南》中“从“DataLink 协调不可能”状态除去表”中所提到的过程。

SQL1162W 协调处理失败。在处理异常期间,DB2 Data Links Manager 变得不可用。

说明

在处理协调异常期间,表数据所引用的一个或多个 DB2 Data Links Manager 变得不可用。协调处理已失败。表处于“DataLink 协调暂挂”(DRP)状态。

用户响应

再次运行协调。

SQL1163N 不能启用表来进行数据捕获,因为类型为 标识类型 的标识名 标识名 太长。

说明

对于超过特定长度的特定标识类型,不支持数据捕获。处理尝试的更改时,发现类型为 标识类型 的标识 标识名 太长。数据捕获启用所允许的标识类型和最大长度如下所示:

  1. 列。要启用数据捕获,列名不能长于 128 字节。
  2. 表。要启用数据捕获,表名不能长于 128 字节。
  3. 模式。要启用数据捕获,模式名不能长于 128 字节。

用户响应

如果将对此表启用数据捕获,请确保涉及的标识不超过解释中指示的最大大小。否则对表禁用数据捕获,以使用更长的标识名。

sqlcode:-1163

sqlstate:42997

SQL1164N 在 SQL 语句中使用的类型为 类型 的 SQLDA 或主变量无效。原因码 原因码,主变量/SQLVAR 编号 变量编号

说明

处理 SQL 语句中的 SQLDA 或主变量时出错。

如果应用程序员修改了预编译器的输出、在应用程序中使用了以 SQL 开始的变量名,或以另一种方式覆盖了调用参数列表,那么由预编译器创建的调用参数列表可能不正确。

另外,如果 SQLDA 是由应用程序直接传送的,那么可能不能正确地初始化。

主变量/SQLDA 类型:
1
输入主变量或 SQLDA
2
输出主变量或 SQLDA
在带有主变量的 SQL 语句中,使用主变量号从该语句或子语句(对于复合 SQL)的起始位置开始计数,以找出无效的主变量。对于使用 SQLDA 的语句,SQLVAR 号用于查找无效的 SQLVAR。对于输入 SQLDA,只对输入主变量或 SQLVAR 进行计数;对于输出 SQLDA,与此类似。注意,此号码从 1 开始,可能不是对所有原因码都适用。对原因码的解释如下所示:
1
SQLDA.SQLN 小于 SQLDA.SQLD
2
SQLVAR.SQLTYPE 无效。
3
在 SQLVAR.SQLLEN 或 SQLVAR2.SQLLONGLEN 中指定的长度对于 SQLVAR.SQLTYPE 中给定的 SQL 类型不正确。
4
存在“大对象 SQLVAR”,但是 SQLDA.SQLDAID 的 SQLDOUBLED 字段未设置为 '2'。
5
提供了输入 varchar,其当前长度(来自 varchar 本身的长度字段)大于最大长度。最大长度是由 SQLVAR.SQLLEN 的声明(当为主变量时)或 SQLVAR.SQLLEN 的设置(当为用户定义的 SQLDA 时)来确定的。
6
传送了当前长度(在 LOB 本身的长度字段中,或是由 SQLVAR2.SQLDATALEN 指针指示)大于最大长度的输入“大对象”。最大长度是由 SQLVAR2.SQLLONGLEN 的声明(当为主变量时)或 SQLVAR2.SQLLONGLEN 的设置(当为用户定义的 SQLDA. 时)来确定的。
7
双字节字符大对象具有由 SQLVAR2.SQLDATALEN 指针指示的奇数值,它总是以字节为单位,即使对于 DBCLOB 也是如此。
8
SQLDATA 指针无效,或者它指向的存储器空间不够。
9
SQLIND 指针无效,或者它指向的存储器空间不够。
10
SQLDATALEN 指针无效,或者它指向的存储器空间不够。
11
当前 SQL 语句需要特定数目的输入主变量/SQLVAR。

无法处理该语句。

用户响应

检查应用程序中是否有记录的任何错误。注意,程序员不要尝试修改预编译器输出。

sqlcode:-1164

sqlstate:07002

SQL1165W 不能赋值给主变量,因为该值不在主变量的数据类型的范围之内。

说明

对主变量列表执行的 FETCH、VALUES 或 SELECT 失败,因为主变量不够大,所以不能容纳检索到的值。

继续语句处理,返回空指示符 -2。

用户响应

验证表定义是否是当前的,并且主变量是否具有正确的数据类型。有关 SQL 数据类型的范围,请参阅 SQL Reference

sqlcode:+1165

sqlstate:01515

SQL1166W 尝试用零作除数。

说明

处理算术表达式时导致用零作除数。返回此警告时可能带有一行,但不是导致警告的行。例如,这种情况会发生在谓词的算术表达式中,或者发生在使用系统临时表来处理查询时。可能再次发出警告,因为每当将空指示符变量设置为 -2 时,也会返回该警告。

继续语句处理,使用空值作为除法表达式的结果,并且可能返回空指示符 -2。

用户响应

检查 SQL 语句以确定问题的原因。如果问题与数据有关,那么需要检查发生错误时所处理的数据。

sqlcode:+1166

sqlstate:01564

SQL1167W 发生算术溢出或其他算术异常。

说明

处理算术表达式时导致算术溢出、下溢或其他算术异常。返回此警告时可能带有一行,但不是导致警告的行。例如,这种情况会发生在谓词的算术表达式中,或者发生在使用系统临时表来处理查询时。可能再次发出警告,因为每当将空指示符变量设置为 -2 时,也会返回该警告。

继续语句处理,使用空值作为算术表达式的结果,并且可能返回空指示符 -2。

用户响应

检查 SQL 语句以确定问题的原因。如果问题与数据有关,那么需要检查发生错误时所处理的数据。请参阅 SQL Reference 以了解数据类型的有效范围。

sqlcode:+1167

sqlstate:01519

SQL1168N Load 实用程序 REMOTEFETCH 介质错误。原因码:原因码

说明

Load 实用程序遇到与 REMOTEFETCH 介质相关联的错误。这是由下列其中一个原因引起的:

1

无法与 REMOTEFETCH 介质自变量中指定的数据库名称建立连接。

2

REMOTEFETCH 介质自变量中指定的源表名不存在,或者无法访问源表。

3

无法准备(PREPARED)REMOTEFETCH 介质自变量中指定的源查询。

4

源表或源查询的结果集与目标表定义不兼容。

5

从源表或源查询访存记录时出错。

用户响应

与每个原因码相对应的响应如下所示:

1

确保数据库名称、用户标识和密码自变量全都正确。

2

确保表名正确。

3

确保查询有效。

4

确保源表/源查询的列定义与目标表的列定义兼容。

5

检查 db2diag 日志文件,以确定错误根源。

SQL1169N 说明语句时出错。原因码:原因码

说明

已调用说明工具来说明先前使用 REOPT ONCE 编译的语句,但是发生了如下列其中一个原因码所描述的错误:

  1. 无法在程序包高速缓存中找到指定的语句。
  2. 尚未使用 REOPT ONCE 编译高速缓存的语句。
  3. 已在带有 REOPT ONCE 的多个环境中编译了高速缓存的语句,不能对其进行唯一地标识。
  4. 对高速缓存的重新优化的语句无法找到值。
  5. Explain 表的一个列太小。其他信息 标识了模式名、表名和列名以及存储说明工具生成的数据所需的列大小,其格式为 模式名.表名.列名建议大小)。

    如果名称非常长,那么 其他信息 可能会被截断。db2diag 日志文件将包含更多详细信息。

用户响应

与原因码对应的用户响应是:

  1. 确保指定的语句文本与程序包高速缓存中的语句的语句文本相匹配。
  2. 使用 REOPT ONCE 重新编译语句。请参阅《命令参考》以了解详细信息。
  3. 确保语句具有带有 REOPT ONCE 设置的唯一环境。
  4. 确保在最初重新优化了语句的数据库分区上说明了该语句。
  5. 确定必需的列大小在表和数据库中能否放得下。如果放得下,那么使用 ALTER TABLE 语句来增大列大小。

sqlcode:-1169

sqlstate:560C9

SQL1170N 不能继续执行操作,因为数据库分区 数据库分区 不可用。

说明

数据库分区 数据库分区 不可用。当将新的存储路径用作 RESTORE 命令的一部分或者运行使用 ON DBPARTITIONNUM 子句的 BACKUP 命令时,就会发生此错误。

用户响应

在数据库分区变得可用之后重新提交 BACKUP 或 RESTORE 命令。如果不可用的数据库分区不能变得可用,那么在不指定新的存储路径的情况下重新提交 RESTORE 命令,或者从 BACKUP 命令中排除该数据库分区。

sqlcode:-1170

sqlstate:5U013

SQL1171N 已达到存储路径的最大数目。

说明

一个存储器组的存储路径的最大数目为 128,已经达到了此数目。发出的 CREATE DATABASE 命令或 ALTER STOGROUP 语句可能包含太多路径,或者数据库可能已经使用了允许的最大数目。

用户响应

如果运行 CREATE DATABASE 命令时发生了此错误,那么表示指定了太多存储路径。减少存储路径数,然后重新发出该命令。

如果执行 ALTER STOGROUP 语句时发生了此错误,那么可能指定的路径数超过了允许的最大路径数,或者指定的路径数与此存储器组已经在使用的路径数之和大于最大值。减少在 ALTER 语句中指定的存储路径数,然后重新提交该语句。

sqlcode:-1171

sqlstate:5U009

SQL1172N 对非目录数据库分区执行的复原操作不能指定自动存储路径。

说明

当复原到分区数据库中的非目录分区时,复原操作指定了存储路径列表。这是不受支持的。

用户响应

在不指定存储路径列表的情况下再次执行复原操作,或者首先使用存储路径的新列表来复原目录分区。

sqlcode:-1172

sqlstate:5U010

SQL1173N 复原操作必须指定自动存储路径。

说明

先前已尝试在指定分区数据库中的自动存储路径列表的情况下复原目录分区,但是复原失败。该目录分区上的任何后续复原操作也必须指定自动存储路径列表。一旦通过前滚操作使数据库恢复为正常状态,就会从数据库中除去此限制。

用户响应

在指定自动存储路径列表的情况下再次执行复原操作。

sqlcode:-1173

sqlstate:5U011

SQL1174N 路径 路径 中的数据库分区表达式无效或者它被错误地使用。原因码:原因码

说明

在指定的路径 路径 中找到了使用 $N 表示法的数据库分区表达式,但是不允许使用该表达式或者它被错误地指定。原因码如下所示:

1

数据库分区表达式已被用作数据库路径的一部分,隐式地指定为第一个存储路径,或者显式地使用了 DBPATH ON 选项,这些是不允许的。

2

在路径中找到了数据库分区表达式,但是由于存在语法错误而无法对它进行求值。

3

数据库分区表达式指定了超出允许范围的数目。如果数目是在 N 自变量之前指定 ($[number]N),那么数目可以是从 2 到 6(包括 2 和 6 在内)。

用户响应

从数据库路径中移除数据库分区表达式。或者,如果正在从列表中的第一个存储路径来派生数据库路径,那么使用 DBPATH ON 选项来显式地提供数据库路径,而给定的数据库路径不包含数据库分区表达式。更正数据库分区表达式。重新提交该命令。

sqlcode:-1174

sqlstate:5U012

SQL1175I 已减少装入分区代理程序数以优化 REMOTEFETCH 的执行。

说明

为了优化 REMOTEFETCH 并行性,Load 实用程序已自动减少了分区代理程序数。

SQL1176N 参数-1 参数和 参数-2 参数指定的值不兼容。

说明

为命令或 API 的参数提供了不兼容的值。

用户响应

修改其中一个参数,然后重新提交该命令。请参阅“命令或 API 参考”以了解有关有效值的更多信息。

SQL1177N 在当前数据库服务器环境中,在运行时执行例程 例程名(特定名称 特定名称)失败。

说明

只能在 Windows 操作系统环境中的数据库服务器上创建和运行 OLE、OLEDB 和 CLR 例程。而当前数据库服务器不在 Windows 操作系统环境中。因此无法从此服务器中调用这些例程。

用户响应

请在 Windows 操作系统环境中的数据库服务器上创建 OLE、OLEDB 或 CLR 例程,然后再次尝试从该数据库服务器中调用这些例程。

sqlcode:-1177

sqlstate:42997

SQL1178N 称为 对象名对象类型 未引用联合数据库对象。

说明

对象名 标识的类型为 对象类型 的对象是使用关键字 FEDERATED 定义的,但语句中的全查询未引用联合数据库对象。

无法处理该语句。

用户响应

从语句中除去关键字 FEDERATED。

sqlcode:-1178

sqlstate:429BA

SQL1179W 称为 对象名对象类型 可能需要调用者具有对数据源对象的必要特权。

说明

对象名 标识的对象引用联合对象(如 OLE 数据库表函数、联合例程、联合视图或昵称),其中实际数据作为数据源存在。当访问数据源数据时,用户映射和授权检查是根据启动该操作的用户来进行的。

如果 对象类型 是 SUMMARY TABLE,那么操作正在为具体化查询表刷新数据。调用了 REFRESH TABLE 或 SET INTEGRITY 语句(这些语句将导致刷新) 的用户可能需要具有必需的特权才能访问数据源中的基础数据源对象。

如果 对象类型 是 VIEW,那么该视图的任何用户可能需要具有必需的特权才能访问数据源中的基础数据源对象。

如果 对象类型 是 PROCEDURE、FUNCTION 或 METHOD,那么例程的调用程序可能需要具有必要的特权才能访问例程中的任何 SQL 语句的数据源上的底层数据源对象。

如果 对象类型 是 PACKAGE,并且此消息在应用程序预编译或绑定期间生成,那么表明该应用程序的调用者可能必须具有必要的特权才能访问该应用程序中任何静态 SQL 语句的数据源中的底层数据源对象。

如果 对象类型 是 PACKAGE,并且此消息在 SQL 或 XQuery 过程的创建期间生成,那么表明该过程的调用者可能必须具有必要的特权才能访问该过程中任何 SQL 语句的数据源中的底层数据源对象。

在任何情况下,尝试访问数据源对象时都可能发生权限错误。

用户响应

对对象授予特权可能不足以支持从数据源访问数据的操作。可能需要对数据源中的底层数据源对象授予用户访问权。

如果 对象类型 是 PACKAGE,并且此消息在应用程序预编译或绑定期间生成,请在 PRECOMPILE (PREP) 或 BIND 命令中指定 FEDERATED YES 选项。

如果 对象类型 是 PACKAGE,并且此消息在 SQL 或 XQuery 过程的创建期间生成,请将 SQL 和 XQuery 过程的预编译和绑定选项设置为包括 FEDERATED YES 选项。要设置 SQL 和 XQuery 过程的预编译和绑定选项,请设置注册表变量 DB2_SQLROUTINE_PREPOPTS 或者调用过程 SYSPROC.SET_ROUTINE_OPTS。例如,要设置该注册表变量,请在操作系统命令提示符处发出以下命令:

db2set DB2_SQLROUTINE_PREPOPTS="FEDERATED YES"

sqlcode: +1179

sqlstate:01639

SQL1180N 例程 例程名 (特定名称 特定名称)导致了一个 OLE 错误。HRESULT=hresult。诊断文本:消息正文

说明

数据库管理器在尝试与用户定义的函数 (UDF) 或存储过程 例程名(特定名称 特定名称)的 OLE 自动服务器通信时,接收到 OLE 错误代码。HRESULT hresult 是返回的 OLE 错误代码,而 消息正文 是检索到的错误消息。

下面显示了错误消息部分列表、HRESULTS 和可能的原因。OLE 可能更改了错误消息正文,也可能添加了新的错误代码。
未知接口(0x80020001):
指定的 OLE 对象不支持 IDispatch 接口。
类型不匹配(0x80020005):
一个或多个 SQL 数据类型与方法自变量的数据类型不匹配。
未知名称(0x80020006):
找不到指定的 OLE 对象的指定方法名。
无效参数数目(0x8002000E):
传送到方法的自变量数与该方法接受的自变量数不相同。
无效类字符串(0x800401F3):
指定的 ProgID 或 CLSID 无效。
类未注册(0x80040154):
未正确注册 CLSID。
找不到应用程序(0x800401F5):
找不到本地服务器 EXE。
找不到类的 DLL(0x800401F8):
找不到正在处理的 DLL。
服务器执行失败(0x80080005):
创建 OLE 对象失败。

用户响应

请参阅 OLE Programmer's Reference Guide,以获取完整文档,包括特殊术语的含义。

sqlcode:-1180

sqlstate:42724

SQL1181N 例程 例程名 (特定名称 特定名称) 发生异常,且描述为 消息正文

说明

用户定义的函数(UDF)或存储过程 例程名(特定名称 特定名称)发生了异常。消息正文显示由例程返回的异常情况的文本式描述。

用户响应

用户将需要理解异常的含义。咨询例程的程序设计者。

sqlcode:-1181

sqlstate:38501

SQL1182N 用户定义的函数 函数名 不能初始化指定 OLE 数据库提供程序的数据源对象。HRESULT=hresult。诊断文本:消息正文

说明

不能实例化或初始化指定 OLE 数据库提供程序的 OLE 数据库数据源对象。hresult 是返回的 OLE 数据库错误代码,而 消息正文 是检索到的错误消息。

下面显示 HRESULTS 和可能原因的部分列表。

0x80040154
类(OLE 数据库提供程序)未注册。
0x80040E73
指定的初始化字符串不符合规范。
0x80004005
未指定的错误(初始化期间)。

用户响应

验证是否正确注册了 OLE 数据库提供程序,以及是否正确初始化了连接字符串中的参数。查阅 Microsoft OLE DB Programmer's Reference 和 Data Access SDK 以获取 HRESULT 码和“OLE 数据库核心组件”中的 Data Links API 连接字符串语法的完整文档。

sqlcode:-1182

sqlstate:38506

SQL1183N 用户定义的函数 函数名 从指定的 OLE 数据库提供程序接收到 OLE 数据库错误。HRESULT=hresult。诊断文本:消息正文

说明

指定的 OLE 数据库提供程序返回了 OLE 数据库错误代码。hresult 是返回的 OLE 数据库错误代码,而 消息正文 是检索到的错误消息。

下面显示 HRESULTS 和可能原因的部分列表。

0x80040E14
该命令包含一个或多个错误,例如,传递命令文本中的语法错误。
0x80040E21
出错,例如,提供的 columnID 无效(DB_INVALIDCOLUMN)。
0x80040E37
指定的表不存在。

用户响应

查阅 Microsoft OLE DB Programmer's Reference 和 Data Access SDK 以获取 HRESULT 码的完整文档。

sqlcode:-1183

sqlstate:38506

SQL1184N 有一个或多个 EXPLAIN 表不是用当前版本的 DB2 创建的。

说明

在使用 DB2EXMIG 迁移这些表,或者使用当前版本的 DB2 的 EXPLAIN.DDL CLP 脚本来删除和创建它们之前,EXPLAIN 将不能插入到这些表中。

用户响应

使用 DB2EXMIG 迁移这些表,或用当前版本的 DB2 的 EXPLAIN.DDL CLP 脚本来删除并重新创建这些表。请重新发出该命令。

sqlcode:-1184

sqlstate:55002

SQL1185N 绑定程序包时不正确地使用了 FEDERATED

说明

如果 为 NO,那么程序包中至少有一个静态 SQL 语句包括对昵称或者 OLE 数据库表函数或 OLE 数据库过程的引用。 在此情况下,必须指定 FEDERATED YES 以绑定程序包。

如果 为 YES,那么程序包中没有静态 SQL 语句包括对昵称或者 OLE 数据库表函数或 OLE 数据库过程的引用。在此情况下,必须指定 FEDERATED NO 以绑定程序包。

未创建程序包。

用户响应

指定正确的 FEDERATED 选项。

SQL1186N 名为 对象名 的对象 对象类型 被改变为联合对象,或被创建为联合对象,而没有指定 FEDERATED 子句。

说明

对象名 标识的对象引用联合对象(如 OLE 数据库表函数、联合例程、联合视图或昵称),其中实际数据作为数据源存在。

如果正在改变非联合视图且全查询现在直接或间接引用联合数据库对象,那么必须指定 FEDERATED。

如果正在改变联合视图且全查询仍直接或间接引用联合数据库对象,那么不能指定 NOT FEDERATED。

如果正在创建具体化查询表并且全查询直接或间接引用联合数据库对象,那么不能指定 NOT FEDERATED。

如果正在创建 SQL 例程并且该例程直接或间接引用联合数据库对象,那么不能指定 NOT FEDERATED。

用户响应

要将非联合视图改变为联合视图,可指定 FEDERATED 子句。

要改变一个仍将作为联合视图的联合视图,不要指定 NOT FEDERATED 子句。

要创建在其中全查询直接或间接引用联合数据库对象的具体化查询表,不要指定 NOT FEDERATED 子句。

要创建直接或间接引用联合数据库对象的 SQL 例程,不要指定 NOT FEDERATED 子句。

sqlcode:-1186

sqlstate:429BA

SQL1187W 已成功地创建数据库或者对数据库进行升级,但是在创建详细死锁事件监视器 事件监视器名 时发生错误。未创建详细死锁事件监视器。

说明

CREATE DATABASE 或 UPGRADE DATABASE 命令未能为已创建的数据库或者已升级的数据库创建详细死锁事件监视器。

用户响应

创建详细死锁事件监视器(如果想要)。

SQL1188N SELECT 或 VALUES 语句的列 源列号 与表列 目标列号 不兼容。源列具有 sqltype 源-sql-类型,而目标列具有 sqltype 目标-sql-类型

说明

源列和目标列不兼容。这可能是由 SELECT 或 VALUES 语句的列的不正确顺序或 METHOD P 或 METHOD N 规范的不正确顺序导致的。

用户响应

更正命令以便源列和目标列相兼容,然后重新提交命令。

SQL1189N 对于指定的文件类型,指定的 LOAD METHOD 无效。

说明

为指定文件类型指定了无效的 METHOD。

用户响应

使用另一 METHOD 重新提交命令。

SQL1190N LOAD 实用程序遇到 SQLCODE sqlcode,SQLSTATE sqlstate 以及消息标记 标记列表

说明

LOAD 实用程序遇到 SQLCODE sqlcode 的错误并且已经停止处理。

用户响应

在《消息参考》中查找 SQLCODE sqlcode。执行需要的更正操作,然后重新提交命令。

SQL1191N 在 METHOD 参数中指定的列 列规范 不存在。

说明

列规范 不存在于查询的结果中。

用户响应

更正无效的列规范并重新提交命令。

SQL1192W 为当前文件类型指定了过多的输入源。允许的最大数目是 最大输入源

说明

指定的文件类型不允许为单个装入指定超过 最大输入源 个的输入源。

用户响应

以不超出 最大输入源 个的输入源数目重新提交命令.

SQL1193I 实用程序正开始通过 SQL 语句 语句 装入数据。

说明

这是一条参考消息,它指示通过 SQL 语句执行的装入操作已开始。

用户响应

不需要执行任何操作。

SQL1194W 与目标列号 列号 相对应的第 行号 行中的值无效。已经拒绝了该行。

说明

拒绝第 行号 行的原因是与目标列 列号 相对应的值对于该列是无效值。

原因可能是:
  • 数值不在它的目标列的最小或最大范围之内。
  • 字符值对于它的目标列过长。

用户响应

检查输入值。如果有必要,请定义一个新表,将目标列 列号 替换为更合适的定义列并重复该过程。

SQL1195N 工具目录数据库 数据库名称 创建或初始化在 服务器名 上失败。SQLCODE = sqlcode

说明

工具目录数据库 数据库名称 创建或初始化在 服务器名 上失败。SQLCODE = sqlcode

用户响应

请参阅从操作返回的 SQLCODE 的用户响应。

SQL1196W 备份成功完成。但是,不能与一个或多个“Data Links 文件管理器”联系。此备份的时间戳记是 备份映像时间戳记

说明

备份成功完成。在备份处理期间,一个或多个“Data Links 文件管理器”不可用。当“Data Links 文件管理器”可用时,需要来自它们的附加验证。

用户响应

停止备份处理期间不可用的“Data Links 文件管理器”。一旦可与所有“Data Links 文件管理器”联系,数据库管理器将自动完成此备份映像的最终验证。

SQL1197N 为命令 命令 中的关键字 关键字 指定的值无效。

说明

命令 指定的 关键字 值无效。对于数值,该值可能超过定义的范围。对于其他类型,指定的值不在定义的一组有效值内。

用户响应

从命令 命令 的参考文档中确定哪些是有效值并进行适当的更改。如果此错误已经由 API 返回,那么从 命令 API 的参考文档中确定哪些是相应 API 选项的有效值并进行适当的更改。

SQL1198N 此命令在当前低级别客户机/服务器配置中不受支持。原因码:原因码

说明

在涉及到 V8 之前的客户机或服务器的当前配置中,不支持您已输入的命令。可能的原因码如下所示:

1

不支持可滚动游标从 V8 之前的客户机通过 V8 或更高版本的网关到达数据库服务器。

2

不支持实用程序命令从 V8 之前的客户机通过 V8 或更高版本的网关到达任何数据库服务器。

3

不支持通过 V8 或更高版本的网关来访问 V8 之前的服务器。

4

不支持实用程序命令从 V8 或更高版本的客户机到达 V8 之前的服务器。

5

V8 之前的客户机只能访问使用 CCSID 值创建的表、表函数和过程,该 CCSID 值的相应代码页与数据库代码页相同。

6

不支持执行从 V9 以前的客户机前滚到 V9 或更高版本服务器的表空间时间点前滚命令,这是因为这些命令的某些功能是在客户端运行的。当 V9 之前的客户机连接至 V9 或更高版本的服务器时,该客户机将不能执行这些操作。

7

后备级别的 API 在当前客户机/服务器配置中不受支持。

98

对于从 V8 或更高版本的客户机与 V8 之前的服务器之间的连接,不支持该操作。

99

对于从 V8 之前的客户机与 V8 或更高版本的服务器之间的连接,不支持该操作。

用户响应

操作视原因码而定,如下所示:

1

不要从低级别客户机通过网关来使用可滚动游标。使用直接的客户机/服务器连接或者将客户机升级到兼容的发行版。

2

不要从低级别客户机通过网关来发出实用程序命令。使用直接的客户机/服务器连接或者将客户机升级到兼容的发行版。

3

使用兼容级别的网关或者配置与服务器的直接连接(不使用网关)。

4

使用兼容的客户机级别来发出 V8 实用程序命令。

5

使用 V8 或更高版本的客户机访问使用 CCSID 值创建的表、表函数和过程,该 CCSID 值的相应代码页与数据库代码页不同。

6

使用 V9.1 客户机来重新提交前滚到时间点命令。并且,应该前滚到日志末尾(而不是前滚到某个时间点)。

7

使用更高版本的 API,以便继续用于当前客户机/服务器配置。

98

使用兼容级别的客户机来发出此命令或者考虑升级服务器的代码级别。

99

使用兼容级别的服务器来发出此命令,或者考虑升级客户机的代码级别。

sqlcode:-1198

sqlstate:42997

SQL1200N 对象参数无效。

说明

在 COLLECT DATABASE STATUS 函数调用中为对象参数指定的值无效。有效值是:
SQLE_DATABASE
收集单个数据库的状态。
SQLE_DRIVE
收集单个路径上的所有 LOCAL 数据库的状态。
SQLE_LOCAL
收集所有 LOCAL 数据库的状态。

无法处理该命令。

用户响应

更正对象参数,重新提交 COLLECT DATABASE STATUS 函数调用。

SQL1201N 状态参数无效。

说明

在 COLLECT DATABASE STATUS 函数调用中为状态参数指定的值无效。有效值是:
SQLE_SYSTEM
将收集系统状态。
SQLE_DATABASE
将收集系统状态和数据库状态。
SQLE_ALL
将收集系统状态、数据库状态和用户状态。

无法处理该命令。

用户响应

更正状态参数,重新提交 COLLECT DATABASE STATUS 函数调用。

SQL1202N 尚未收集状态。

说明

对 GET NEXT DATABASE STATUS BLOCK 或 FREE DATABASE STATUS RESOURCES 函数调用中的 handle 参数指定的值无效。 句柄必须是 COLLECT DATABASE STATUS 函数调用中返回的正函数值。

这是进程中执行的第二个 COLLECT DATABASESTATUS 函数调用。第一个 COLLECT DATABASE STATUS 调用已终止;不能再使用它的句柄。

无法处理该命令。

用户响应

更正 handle 参数并重新提交 COLLECT DATABASE STATUS 函数调用。

SQL1203N 没有用户与该数据库相连。

说明

请求了数据库的用户状态,但是没有用户与该数据库相连。

无法处理该命令。

用户响应

验证数据库名称和连接状态。用当前正在使用的数据库重新提交该命令。

SQL1204N 已安装的数据库管理器版本不支持代码页 代码页 和/或地域代码 地域代码

说明

此版本的数据库管理器不支持活动代码页和/或地域代码。

无法处理该命令。

选择此版本的数据库管理器支持的活动代码页和地域代码。

联合系统用户:如果有必要,请找出导致请求失败的数据源中的问题,并选择联合服务器和数据源都支持的活动代码页和地域代码。

用户响应

退出当前的程序,并返回到操作系统。

sqlcode:-1204

sqlstate:22522

SQL1205N 已指定的代码页 代码页 和/或地域代码 地域 无效。

说明

此版本的 DB2 不支持“创建数据库”命令指定的活动代码页和/或地域代码。

无法处理该命令。

用户响应

请参阅《命令参考》中的“创建数据库”命令,以了解有关 DB2/2 支持的有效代码页和地域代码对的详细信息。

SQL1206N 在此数据库配置中不支持 PRUNE LOGFILE。

说明

在下列情况下,不支持 PRUNE LOGFILE 请求:
  1. 数据库不处于可恢复方式。如果 LOGARCHMETH1 设置为 DISK、TSM、VENDOR、USEREXIT 或 LOGRETAIN,或者如果 LOGARCHMETH2 设置为 DISK、TSM 或 VENDOR,那么数据库处于可恢复方式。
  2. 活动的日志文件路径设置为原始设备。

用户响应

不要对此数据库发出 PRUNE LOGFILE 命令。

SQL1207N 找不到通信管理器配置文件 名称

说明

在指定的路径中或者缺省驱动器上的 CMLIB 目录中找不到在 CATALOG NODE 命令中指定的通信管理器配置文件名。

无法处理该命令。

用户响应

用正确的配置文件名和路径重新提交该命令。

SQL1208W 可用内存量可能影响了 Load 实用程序的性能。

说明

Load 实用程序无法分配所有请求的内存。操作仍能够成功完成,但性能可能欠佳。可供 Load 实用程序使用的内存量由 Load 实用程序的 DATA BUFFER 选项值确定,或者由 util_heap_sz 数据库配置参数值确定。

用户响应

如果合适,为将来的 Load 实用程序调用增大内存限制值。

SQL1209W 在 CATALOG NODE 函数中指定的 partner_lu 名 名称 不存在。已创建一个名称。

说明

在位于缺省驱动器的 CMLIB 目录中的通信管理器配置文件中不存在 CATALOG NODE 函数中指定的逻辑伙伴单元名。

创建了指定名称的逻辑单元概要文件。

用户响应

不需要执行任何操作。

SQL1210W 为一个或多个配置文件参数返回缺省值。

说明

返回的一个或多个 DOS 请求者/WINDOWS 请求者的配置值是缺省值。可能在“DOS 请求者/WINDOWS 请求者”配置文件中没有定义该参数,或者打不开配置文件,或者读取文件时出错。

用户响应

确保“DOS 请求者/WINDOWS 请求者”的配置文件存在于适当路径中,并且显式地定义了该参数。

SQL1211N 计算机名称 名称 无效。

说明

在 NPIPE 协议结构中对 Catalog 命令指定的计算机名称无效。计算机名称的大小必须为 15 个字符或更少。

无法处理该命令。

用户响应

验证计算机名称是否有效,并重新提交该命令。

SQL1212N 实例名 名称 无效。

说明

为 Catalog 命令指定的实例名无效。实例名的大小必须为 8 个字符或更少。

无法处理该命令。

用户响应

验证实例名是否有效,并重新提交该命令。

SQL1213N 更改密码 LU 名 名称 无效。

说明

在 APPN 协议结构中对 CATALOG 命令指定的更改密码逻辑单元(LU)名称无效。

更改密码 LU 名是远程 SNA LU 名,且必须是 1 到 8 个字符。有效字符是 A 到 Z、a 到 z、0 到 9、#、@ 和 $。第一个字符必须是字母或特殊字符:#、@ 或 $。系统会将小写字符转换为大写字符。

无法处理该命令。

用户响应

验证在更改密码 LU 名中指定的字符。

用有效的更改密码 LU 名重新提交该命令。

SQL1214N 事务程序名 名称 无效。

说明

在 CATALOG 命令的 APPN 协议结构中指定的事务程序(TP)名无效。

TP 名是远程“SNA 应用程序”TP 名,且必须是 1 到 64 个字符。有效字符是 A 到 Z、a 到 z、0 到 9、#、@ 和 $。第一个字符必须是字母或特殊字符:#、@ 或 $。

无法处理该命令。

用户响应

验证 TP 名中指定的字符。

用 TP 名重新提交该命令。

SQL1215N LAN 适配器地址 地址 无效。

说明

在 CATALOG 命令的 APPN 协议结构中指定的 LAN 适配器地址无效。

LAN 适配器地址是远程 SNA LAN 适配器地址,必须是 12 位十六进制数。

无法处理该命令。

用户响应

验证 LAN 适配器地址。

用有效的 LAN 适配器地址重新提交该命令。

SQL1216N 此数据库不支持图形数据和图形函数。

说明

数据库的代码页不支持图形数据。数据类型 GRAPHIC、VARGRAPHIC、LONG VARGRAPHIC 和 DBCLOB 对于此数据库无效。 GRAPHIC 文字和 VARGRAPHIC 标量函数对于此数据库无效。

无法处理该语句。

联合系统用户:数据源也可能会检测到此情况。

用户响应

使用有效的数据类型重新提交该命令。

sqlcode:-1216

sqlstate:56031

SQL1217N 目标数据库不支持 REAL 数据类型。

说明

SQL 操作正在使用数据类型 REAL(单精度浮点数)作为输入变量或输出变量。在此请求的目标数据库上不支持 REAL 数据类型。

未处理该语句。

用户响应

将与 SQL 数据类型 REAL 相对应的任何主变量的声明替换为与应用程序中的 SQL 数据类型 DOUBLE 相对应的声明。

sqlcode:-1217

sqlstate:56099

SQL1218N 在缓冲池 缓冲池号 中当前没有任何页面可用。

说明

当前正在使用缓冲池中的所有页。请求使用另一个页面失败。

无法处理该语句。

用户响应

缓冲池不够大,此时无法向所有数据库进程或线程提供页。 缓冲池太小,或者存在的活动进程或线程太多。

如果再次执行,该语句可能成功。如果频繁发生此错误,那么下列某些操作或所有操作可能会防止进一步的故障:
  1. 增大缓冲池大小
  2. 减小数据库代理程序和/或连接的最大数目。
  3. 减小最大并行度
  4. 减小此缓冲池中表空间的预取大小。
  5. 将某些表空间移到其他缓冲池中。

sqlcode:-1218

sqlstate:57011

SQL1219N 因为未能分配专用虚拟内存,所以请求失败。

说明

实例不能分配足够的专用虚拟内存用来处理请求。 这可能是在其他(不相关)进程中执行共享内存分配的结果。

用户响应

可以通过下列方法来更正问题:
  • 停止在机器上正在运行的其他应用程序,特别是那些使用大量共享内存的应用程序。

sqlcode:-1219

sqlstate:57011

SQL1220N 数据库管理器未能分配共享内存。

说明

数据库管理器在不同时间分配内存和取消分配内存。发生特定事件时(例如,应用程序建立连接时),可以为特定内存区分配内存;当配置发生更改时,也可以取消分配内存。

通常,如果由于发生了下列其中一个问题而使得数据库管理器无法执行操作,就会返回此消息:

  • 数据库管理器的内存资源不足
  • 环境内存资源不足

具体来说,如果下列类型的内存资源存在分配或配置问题,就会返回此消息:

  • 实例内存
  • 系统中可用的物理内存量
  • 系统中分配的共享内存标识数
  • 共享内存段的大小
  • 系统中可用的调页空间量或交换空间量

用户响应

调查当前内存配置,作为对此消息的响应:

  • 将数据库管理器配置参数 instance_memory 设置为 AUTOMATIC。
  • 验证是否有足够的内存资源可用于满足数据库管理器和系统上正在运行其他程序的需求。
  • 在 32 位 Linux 上,将内核参数 shmmax 增大到 256 MB。在 64 位 Linux 上,将内核参数 shmmax 增大到 1GB。
  • 适当情况下,通过停止其他正在使用系统的程序来释放系统资源以供数据库管理器使用。

SQL1221N 无法分配应用程序支持层堆。

说明

无法分配应用程序支持层堆。导致此错误的原因可能是数据库管理器或正在尝试的操作环境中的内存资源不足。可导致此错误的内存资源包括:
  • 系统中分配的共享内存标识数
  • 系统中可用的调页空间量或交换空间量
  • 系统中可用的物理内存量

用户响应

下列其中一项或多项:
  • 验证是否有足够的内存资源可用于满足数据库管理器和系统上正在运行其他程序的需求。
  • 减小 aslheapsz 配置参数。
  • 在适当的地方,停止使用该系统的其他程序。

sqlcode:-1221

sqlstate:57011

SQL1222N 应用程序支持层堆中没有足够的存储器可用来处理请求。

说明

使用了应用程序支持层堆中的所有可用的内存。

用户响应

增大配置参数 aslheapsz 的值。

sqlcode:-1222

sqlstate:57011

SQL1224N 由于数据库管理器发生了错误或者被强制中断,从而无法接受新的请求,已终止正在处理的所有请求或者已终止所指定的请求。

说明

可能会由于多种原因而返回此消息,其中包括:

客户机/服务器配置问题
  • 在使用 TCP/IP 协议的客户机/服务器环境中:对客户机上的 TCP/IP 服务名称指定的端口号与服务器上的端口号不同。联合服务器或数据源可以检测到这种错误情况。
数据库管理器代理程序不可用
  • 在数据库服务器上,已停止或者尚未启动数据库管理器。
  • 管理员已强制使数据库代理进程与系统脱离。
  • 数据库管理器进程异常终止。
此用户标识没有足够的权限
  • 此用户标识在另一具有 SYSADM 权限的用户发出 FORCE QUIESCE 命令时被强制与系统脱离。FORCE QUIESCE 命令将强制使所有对数据库或实例不具有 CONNECT QUIESCE 权限或者不属于具有 CONNECT QUIESCE 权限的组的用户与系统脱离。
  • 在 Windows 操作系统环境中:启用了“扩展安全性”,并且此用户标识不是 DB2USERS 或 DBADMINS 组的成员。
数据库目录冲突
  • 存在两个数据库,即一个本地数据库和一个远程数据库,并且它们的数据库名称和数据库别名都相同。
  • 已将一个本地数据库编目为远程数据库。
  • 在更改一个或多个数据库的编目方式之后,由于数据库管理器仍在使用数据库编目信息的高速缓存副本,因此这些更改未生效。
达到已配置的数据库限制或系统资源限制
  • 应用程序使用的事务日志空间量超出 max_log 或 num_log_span 数据库配置参数所允许使用的空间量。
  • 协调代理程序不足,无法处理应用程序请求。如果应用程序在 WITH HOLD 游标中挂起锁定,并且进行排队以便以集中器方式执行,那么可能会导致活动代理程序被挂起以等待这些锁定。
  • 此连接的空闲时间超出 CONNECTIONIDLETIME 阈值所指定的时间。
  • 某个使用此连接的工作单元的持续时间超出 UOWTOTALTIME 阈值所指定的时间,并且此连接已由于阈值操作指定了 FORCE APPLICATION 而终止。
  • 某个查询的运行时间超出 SQL_ATTR_QUERY_TIMEOUT 语句属性所指定的时间。
所请求的功能不受支持
  • 尝试连接到处于轻度重新启动方式的成员。
在新添加的成员上激活数据库
  • 如果正在新添加的成员上首次激活数据库,那么新添加的成员上的后续数据库连接尝试直到首次激活完成后才能成功。

用户响应

请重新连接至数据库。

如果此连接仍发生故障,请在数据库管理员的帮助下执行下列故障诊断步骤:

  1. 仅限于联合环境:确定是联合数据源返回了错误还是联合数据库服务器返回了错误。
  2. 确保客户机/服务器配置正确:
    1. 确认通信子系统(包括网络电缆、网卡以及 TCP/IP 之类的通信协议)是否已启动并处于运行状态。
    2. 在使用 TCP/IP 协议的客户机/服务器环境中:请对客户机上的 TCP/IP 服务名称指定与服务器上的端口号相同的端口号。
  3. 确保数据库管理器已启动并处于运行状态:
    1. 确定数据库管理器是否已启动并处于运行状态。
    2. 在 db2diag 日志文件中查找有关数据库管理器进程已中断或异常终止的证据。
    3. 如果数据库管理器已停止,或者诊断日志中存在有关任何数据库管理器代理程序已中断或异常终止的证据,请重新启动数据库管理器。
  4. 确保此用户标识有权执行下列操作:
    • 如果数据库或实例已停顿,请执行下列其中一项操作:
      • 取消停顿数据库或实例。
      • 将此用户标识添加到具有 CONNECT QUIESCE 权限的组。
    • 在 Windows 操作系统环境中:如果已启用“扩展安全性”,请将相应的用户标识添加至本地 Windows 安全组 DB2USERS 或 DB2ADMNS。
  5. 消除任何数据库目录冲突:
    1. 将本地数据库目录内容和系统目录内容与数据库配置作比较。尤其是,查找下列问题:
      • 确保没有任何两个数据库的名称或别名相同。
      • 确保将本地数据库编目为本地数据库,并确保将所有远程数据库都编目为远程数据库。
    2. 对数据库的编目方式进行任何更改之后,请停止并重新启动数据库管理器实例。
  6. 进行必要的配置和应用程序更改,以避免超出数据库或操作系统限制:

    通过查看 db2diag 日志文件确定已超出的限制,然后执行下列一项或多项更改:

    • 通过进行下列一项或多项更改,减少应用程序由于使用过多事务日志空间而被强制关闭的机会:
      • 更改应用程序,以便更频繁地发出落实语句。
      • 增大 max_log 或 num_log_span 数据库配置参数。
    • 通过进行下列一项或多项更改,减少应用程序由于没有足够的协调代理程序而被强制关闭的机会:
      • 增大 max_coordagents 的值(相对于 max_connections 的值而言)。
      • 减少对 WITH HOLD 游标的使用。
    • 通过增大 CONNECTIONIDLETIME 阈值,减少连接由于空闲时间过长而被关闭的机会。
    • 通过增大 UOWTOTALTIME 阈值,减少连接由于工作单元的执行时间过长而被关闭的机会。
    • 通过增大 SQL_ATTR_QUERY_TIMEOUT 语句属性或使用 CLI/ODBC 配置关键字 QueryTimeoutInterval,减少查询发生超时的机会。
    • 在 32 位 AIX 环境中:通过执行下列一项或多项更改,减少耗尽 AIX 共享内存的机会:
      • 将数据库编目为使用 TCP/IP 的回送数据源。
      • 如果应用程序正在将多个上下文与本地协议配合使用,请减少应用程序中的连接数或者切换到另一协议(例如 TCP/IP)。
      • 如果应用程序支持 EXTSHM 参数,并且内存资源足以支持使用此参数,请设置此参数。
  7. 根据需要更改应用程序,以避免采用不受支持的使用方案:
    • 为了避免连接到处于轻度重新启动方式的 DB2 成员,请指定未处于轻度重新启动方式的成员,或者不要指定任何特定成员,而是允许数据库管理器将连接路由到适当的成员。
  8. 对于 DB2 for z/OS 服务器:在 z/OS 诊断消息中,收集作为连接关联标记 (CRRTKN) 来报告的应用程序标识及逻辑工作单元标识 (LUWID) 的服务器诊断信息(例如 z/OS SVC 转储)。

在 DB2 pureScale 环境中,如果已添加新成员,那么必须先等待激活操作完成,然后才能从新成员中打开后续数据库连接。否则,请从另一个现有成员进行连接。

sqlcode:-1224

sqlstate:55032

SQL1225N 请求已失败,因为已达到操作系统进程、线程或交换空间的限制。

说明

已达到操作系统进程、线程或交换空间的限制。可以在管理通知日志找到更多有关该问题的信息。

用户响应

检查管理通知日志以确定达到了哪些限制,并增大该限制。

sqlcode:-1225

sqlstate:57049

SQL1226N 已经启动了最大数目的客户机连接。

说明

客户机连接的数目已经与在系统配置文件中为实例定义的最大值相等。

可能会针对用于维护操作的系统驱动的连接数报告此错误。这种连接数的上限为活动用户工作负载的百分比。当不允许更多的连接时,以后将会自动重试这些操作。

不能处理该操作。

用户响应

等待其他应用程序与数据库断开连接。如果要求一个或多个应用程序并发运行,请增大 max_connections 的值。如果由于客户机尝试连接而返回此错误,那么您可能还需要考虑将 max_connections 设置为 AUTOMATIC,以便在有足够的内存来支持连接的情况下允许任意数目的连接。如果 max_connections 的值大于 max_coordagents 的值,那么将会开启集中器功能部件。

sqlcode:-1226

sqlstate:57030

SQL1227N 的目录统计信息的值 超出其目标列的范围,格式无效或与某些其他统计信息不一致。原因码:代码

说明

为可更新的目录提供的统计信息值或格式无效、超出范围或不一致。对值、范围和格式最常见的检查是(对应于 代码):

1

数字统计信息值必须是 -1 或 >= 0。

2

表示百分比的数字统计信息(例如,CLUSTERRATIO)必须在 0 到 100 之间。

3

当采用违反有关手动更新列统计信息的规则的方式来尝试更新 HIGH2KEY 和/或 LOW2KEY 时,会返回此消息,且返回码为 3。

4

PAGE_FETCH_PAIRS 相关规则:

  • 必须用一系列空白定界符将 PAGE_FETCH_PAIRS 统计信息中的各个值分隔开。
  • 在单个 PAGE_FETCH_PAIR 统计信息中必须刚好有 11 对。
  • 如果 CLUSTERFACTOR > 0,那么必须始终有一个有效 PAGE_FETCH_PAIRS 值。
  • PAGE_FETCH_PAIRS 统计信息中的各个值不能超过 19 位并且必须小于最大整数值(MAXINT = 9223372036854775807)。
  • PAGE_FETCH_PAIR 的缓冲区大小条目必须按值进行升序排列。而且,PAGE_FETCH_PAIRS 条目中的任何缓冲区大小值都不能大于 MIN(NPAGES, 1048576)(对于 32 位平台)和 MIN(NPAGES, 2147483647)(对于 64 位平台),其中 NPAGES 是相应的表中的页数。
  • AVGPARTITION_PAGE_FETCH_PAIRS 的各个“fetches”条目的值必须按降序排列,并且各个 fetches 条目都不小于 NPAGES。另外,AVGPARTITION_PAGE_FETCH_PAIRS 条目中的任何“fetch”大小值不能大于相应的表的 CARD(基数)统计信息。
  • 如果在两个连续的配对中缓冲区大小值相同,那么在这两个配对中的页访存值也必须相同。
5

CLUSTERRATIO 和 CLUSTERFACTOR 相关规则:

  • CLUSTERRATIO 的有效值是 -1 或者在 0 到 100 之间
  • CLUSTERFACTOR 的有效值是 -1 或者在 0 和 1 之间
  • CLUSTERRATIO 或 CLUSTERFACTOR 的其中一个必须一直为 -1。
  • 如果 CLUSTERFACTOR 为正值,那么它必须伴随一个有效的 PAGE_FETCH_PAIR 统计信息。
6

列(SYSCOLUMNS 中的 COLCARD 统计信息)或列组(SYSCOLGROUPS 中的 COLGROUPCARD)的基数不能大于它的相应表 (SYSTABLES 中的 CARD 统计信息)的基数。

7

没有统计信息支持用户定义的结构类型。对于具有下列数据类型的列,仅限于为 AVGCOLLEN 和 NUMNULLS 提供统计信息支持:LONG VARCHAR、LONG VARGRAPHIC、BLOB、CLOB 和 DBCLOB。

8

统计信息与此实体的其他相关统计信息不一致,或者在此上下文中无效。

9

对于不是分区表的那些表,不能更新 SYSSTAT.INDEXES 中的下列表分区统计信息:AVGPARTITION_CLUSTERRATIO、AVGPARTITION_CLUSTERFACTOR、AVGPARTITION_PAGE_FETCH_PAIRS 和 DATAPARTITION_CLUSTERFACTOR

10

AVGPARTITION_PAGE_FETCH_PAIRS 相关规则:

  • 必须用一系列空白定界符将 AVGPARTITION_PAGE_FETCH_PAIRS 统计信息中的各个值分隔开。
  • 在单个 AVGPARTITION_PAGE_FETCH_PAIR 统计信息中必须刚好有 11 对。
  • 如果 AVGPARTITION_CLUSTERFACTOR > 0,那么必须始终有一个有效 AVGPARTITION_PAGE_FETCH_PAIRS 值。
  • AVGPARTITION_PAGE_FETCH_PAIRS 统计信息中的各个值不能超过 19 位并且必须小于最大整数值(MAXINT = 9223372036854775807)。
  • AVGPARTITION_PAGE_FETCH_PAIRS 的缓冲区大小条目必须按值进行升序排列。而且,AVGPARTITION_PAGE_FETCH_PAIRS 条目中的任何缓冲区大小值都不能大于 MIN(NPAGES, 1048576)(对于 32 位平台)和 MIN(NPAGES, 2147483647)(对于 64 位平台),其中 NPAGES 是相应的表中的页数。
  • AVGPARTITION_PAGE_FETCH_PAIRS 的各个“fetches”条目的值必须按降序排列,并且各个 fetches 条目都不小于 NPAGES。另外,AVGPARTITION_PAGE_FETCH_PAIRS 条目中的任何“fetch”大小值不能大于相应的表的 CARD(基数)统计信息。
  • 如果在两个连续的配对中缓冲区大小值相同,那么在这两个配对中的页访存值也必须相同。
11

AVGPARTITION_CLUSTERRATIO 和 AVGPARTITION_CLUSTERFACTOR 相关规则:

  • AVGPARTITION_CLUSTERRATIO 的有效值是 -1 或者在 0 到 100 之间。
  • AVGPARTITION_CLUSTERFACTOR 的有效值是 -1 或者在 0 到 1 之间。
  • AVGPARTITION_CLUSTERRATIO 或 AVGPARTITION_CLUSTERFACTOR 必须一直为 -1。
  • 如果 AVGPARTITION_CLUSTERFACTOR 为正值,那么它必须伴随一个有效的 AVGPARTITION_PAGE_FETCH_PAIR 统计信息。
12

DATAPARTITION_CLUSTERFACTOR 相关规则:

  • DATAPARTITION_CLUSTERFACTOR 的有效值是 -1 或者在 0 到 1 之间。
13

AVGCOMPRESSEDROWSIZE 相关规则:

  • AVGCOMPRESSEDROWSIZE 的有效值为 -1 或者在 0 到 AVGROWSIZE 之间。
14

AVGROWCOMPRESSIONRATIO 相关规则:

  • AVGROWCOMPRESSIONRATIO 的有效值为 -1 或者大于 1。
15

PCTROWSCOMPRESSED 相关规则:

  • PCTROWSCOMPRESSED 的有效值为 -1 或者在 0 到 100 之间(包括 0 和 100 在内)。

用户响应

确保新目录统计信息满足指示的范围、长度和格式检查。

确保对统计信息的任何更新在它们的内部关系上(例如,基数)是一致的。

对于不是分区表的那些表,不要尝试更新特定于分区表的那些统计信息列。

sqlcode:-1227

sqlstate:23521

SQL1228W DROP DATABASE 已经完成,但是不能在 数目 个节点上找到数据库别名或数据库名称 名称

说明

已成功完成删除数据库的命令,然而,在某些节点上找不到数据库别名或数据库名称。 可能在这些节点上执行了 DROP DATABASE AT NODE。

用户响应

这只是一条警告消息。无需进行任何响应。

SQL1229N 因为系统错误,所以已回滚了当前事务。

说明

发生了下列情况之一:

  1. 发生了系统错误(例如,成员故障或连接故障)。应用程序已回滚至上一次 COMMIT。

    请注意,就 DB2 实用程序函数而言,对其行为描述如下:

    导入

    已回滚应用程序。如果使用了 COMMITCOUNT 参数,那么该操作将回滚到先前的落实点。

    重组

    操作被异常终止且必须重新提交。

    重新分发

    操作异常终止;但是,可能已成功完成该操作的一部分。用“继续”选项再次发出请求,将从故障点重新启动该操作。

    前滚

    操作被异常终止,且数据库仍处于前滚暂挂状态。必须重新提交该命令。

    备份/复原

    操作被异常终止且必须重新提交。

  2. 为 FCM(快速通信管理器)通信分配的服务端口号并非在数据库管理器实例中的所有成员上都相同。检查所有成员上所使用的 services 文件,以确保这些端口相同。端口是使用以下格式定义的:
       DB2_<instance>       xxxx/tcp
       DB2_<instance>_END   xxxx/tcp

    其中,<instance> 是实例名称,xxxx 是端口号。确保这些端口号未用于 DB2 远程客户机支持。

用户响应

  1. 重试该请求。如果错误仍存在,那么可以在管理通知日志中找到有关该问题的更多信息。可能需要与系统管理员联系以获取帮助,因为发生此错误的最常见原因是成员已失败。

    如果在 db2nodes.cfg 文件中所定义的网络名和主机名不同,那么在这样的环境中,此错误可能意味着网络名接口中发生了故障。这同时适用于多分区数据库环境和 DB2 pureScale 环境。

  2. 将所有成员上的服务端口更新为相同,然后重试该请求。

SQLCA 的第六个 sqlerrd 字段将指示检测到成员故障的成员编号。在检测到故障的成员上,db2diag 日志文件将包含一条消息,用于指出已失败的成员。

sqlcode:-1229

sqlstate:40504

SQL1230W 至少有一个指定的代理程序标识不能被强制。

说明

至少有一个在 Force 命令中指定的代理程序标识不能被强制。此警告的原因可能是:
  • 指定的代理程序标识不存在或无效。
  • 在收集代理程序标识和发出 Force 命令的时间段之间,代理程序与数据库管理器断开连接。
  • 指定的代理程序标识用于不能强制的并行代理程序。

用户响应

如果指定的代理程序标识不存在或无效,那么使用有效的代理程序标识来再次尝试运行该命令。

SQL1231N 指定的“强制”计数无效。

说明

为 Force 命令的计数参数指定的值无效。指定的值必须是正整数或 SQL_ALL_USERS。 如果值为 0 将导致错误。

用户响应

更正计数值,并重新提交该命令。

SQL1232N 指定的“强制”方式无效。

说明

为 Force 命令的方式参数指定的值无效。Force 命令只支持异步方式。必须将该参数设置为值 SQL_ASYNCH。

用户响应

将方式设置为 SQL_ASYNCH 并重新提交该命令。

SQL1233N 语句失败,因为语句所使用的功能只有在 Unicode 数据库中或者含有特定数据库整理的 Unicode 数据库中才受支持,但当前数据库不是 Unicode 数据库,或者是含有不受支持数据库整理的 Unicode 数据库。

说明

仅 Unicode 数据库才支持下列功能:

  • NCHAR、NVARCHAR 和 NCLOB 数据类型。
  • 按照 UX'hex-digits' 格式指定 UCS-2 十六进制常数。
  • NCHAR、NVARCHAR、NCLOB、TO_NCHAR、TO_NCLOB 和 EMPTY_NCLOB 标量函数。
  • 图形表达式,作为 VARCHAR 标量函数的第一个参数。
  • 图形表达式,作为 VARGRAPHIC 标量函数的第一个参数(如果指定了第二个参数)。
  • 定义字符串数据类型时指定 CODEUNITS32。
  • 定义图形字符串数据类型时指定 CODEUNITS16 或 CODEUNITS32。
仅具有 IDENTITY 或 IDENTITY_16BIT 整理的 Unicode 数据库才支持下列功能:
  • 按列组织的表。

用户响应

要对下列消息作出响应,请执行下列其中一项操作:

  • 重新发出语句,其中不指定仅在 Unicode 数据库或含有特定整理的 Unicode 数据库中才受支持的功能。
  • 将数据库重新创建为 Unicode 数据库或含有受支持整理的 Unicode 数据库,然后重新发出语句。

sqlcode:-1233

sqlstate:560AA

SQL1234N 无法将表空间 表空间名 转换为 LARGE 表空间。

说明

只有 REGULAR DMS 表空间才能转换为 LARGE DMS 表空间。系统目录表空间、SMS 表空间和临时表空间不能转换为 LARGE 表空间。

用户响应

通过发出 SELECT TBSPACE、TBSPACETYPE、DATATYPE FROM SYSCAT.TABLESPACES WHERE TBSPACE = '表空间名' 来验证表空间的属性。表空间不能是系统目录表空间(TBSPACE 不能是 'SYSCATSPACE'),它必须是 DMS 表空间(TBSPACETYPE 必须为 'D'),并且还必须是 REGULAR 表空间(DATATYPE 必须为 'A')。

sqlcode:-1234

sqlstate:560CF

SQL1235N 表名 限制将表空间 表空间名称空间 转换为 LARGE 表空间。

说明

分区表在多个 REGULAR DMS 表空间中具有数据分区。表空间必须包含分区表的所有数据分区才能将该表空间转换为 LARGE 表空间。

用户响应

要成功转换分区表的表空间:
  1. 对于包含该分区表的数据分区的每个表(除了其中一个表空间之外),使这些表空间中的数据分区与该分区表拆离。落实拆离操作。
  2. 使用 ALTER TABLESPACE 语句的 COVERT TO LARGE 选项来转换这些表空间中的每个表空间。落实每条语句。
  3. 转换包含该分区表的其余数据分区的表空间。落实此操作。
  4. 使用 REORG INDEXES ALL FOR TABLE 表名 ALLOW NO ACCESS 重建分区表的索引,或者通过重组分区表来重建索引。
  5. 对因与数据分区拆离而产生的新表进行重组。
  6. 将每个表重新连接至分区表。

sqlcode:-1235

sqlstate:560CF

SQL1236N REORG 命令失败。表 表名 不能分配新页,这是因为标识为 索引标识 的索引尚不支持大型 RID。

说明

已通过 ALTER TABLESPACE 语句的 CONVERT TO LARGE 子句将此表所在的表空间转换为 LARGE 表空间。该表本身是不支持大型 RID 的,除非对该表先前具有的所有索引进行重组或重建,从而使它支持大型 RID。必须重组或重建索引,以支持此表将来的增大。

用户响应

可以使用“REORG INDEXES ALL FOR TABLE 表名”命令的重建选项对索引进行重组。对于分区表,必须指定 ALLOW NO ACCESS。另外,可以重组表(使用 REORG TABLE 语句,但是不要附带 INPLACE 子句),重组表时不仅将重建所有索引,而且将使表能够支持每页超过 255 行。

sqlcode:-1236

sqlstate:55066

SQL1237W 表空间 表空间名 正在从 REGULAR 表空间转换为 LARGE 表空间。必须对此表空间中的表的索引进行重组或重建,以便支持大型 RID。

说明

在执行 COMMIT 之后,正在转换的表空间将支持比 REGULAR 表空间的存储容量更大的存储容量。REGULAR 表空间中一个数据页的最大页号为 0x00FFFFFF。要使一个表支持大于 0x00FFFFFF 的页号,必须重组或重建该表的索引。

用户响应

在 SQL Reference 中,ALTER TABLESPACE 语句的说明指定了使用 CONVERT TO LARGE 选项的最佳实践。请遵循这些建议来主动重组或重建 此表空间中所有表的所有索引,以防止将来在为表分配大于 0x00FFFFFF 的页号时可能发生的故障。

sqlcode:+1237

sqlstate:01686

SQL1238N 指定要返回给客户机的结果集无效。原因码:原因码

说明

CREATE PROCEDURE (Sourced) 语句中 WITH RETURN TO CLIENT 子句指定的结果集无效。可能的原因码是:
1
如果数据源是 Microsoft SQL Server、Sybase 或 Informix,那么对于由 CREATE PROCEDURE (Sourced) 语句的 WITH RETURN TO CLIENT 子句返回的结果集集合,其位置号指定的结果集不等于 1。
2
如果数据源是 Oracle,那么对于由 CREATE PROCEDURE (Sourced) 语句中的 WITH RETURN TO CLIENT 子句返回的结果集集合,其最大位置号大于数据源上的最大 REF CURSORS 数。

用户响应

基于原因码的操作是:
1
除去对返回的结果集集合中任何不为 1 的位置号的引用。
2
除去对返回的结果集集合中任何大于数据源上最大 REF CURSORS 数的位置号的引用。

sqlcode:-1238

sqlstate:560CI

SQL1239N 在数据库服务器 V9.5 和更低版本上,只能在单一分区数据库中使用 pureXML 数据存储器功能。

说明

在数据库服务器 V9.5 和更低版本上,只能对只有一个数据库分区的数据库使用 XML 数据存储器功能。但是,分区数据库环境中未提供诸如定义数据类型为 XML 的列、注册 XML 模式存储库对象和 XQuery 表达式的功能。

用户响应

在数据库服务器 V9.5 和更低版本上,对于具有多个数据库分区的数据库,可以将 XML 数据输入到接受 XML 输入的那些函数,并将函数输出存储在数据库中或者将其返回给应用程序。在这种情况下,要使用 pureXML 存储器的功能,需要在一个单独的未使用数据库分区功能的实例中创建新的数据库。同样,要使用数据库分区功能,必须使用一个尚未使用 pureXML 存储器功能的数据库,或者需要在单独的分区数据库环境中创建新的数据库。

sqlcode:-1239

sqlstate:42997

SQL1240N 已达到最大停顿者数。

说明

尝试获得已被 5 个进程停顿的表空间的停顿状态。

用户响应

等待其中一个进程脱离其停顿状态,然后再次尝试。

SQL1241N 创建数据库时,为 表空间名 表空间定义指定了无效值。属性为 字符串

说明

表空间属性的值超过范围。标识的属性是此结构的字段名。

用户响应

更正创建数据库请求。

SQL1242N 在使用 XML 功能的上下文中不支持该功能。原因码为 原因码

说明

由于尝试在不支持 XML 功能的上下文中使用该功能,因此无法处理该语句。上下文由 原因码 指示:

1

在数据库服务器 V9.5 和更低版本上,在按维组织的表中不支持数据类型为 XML 的列。

2

在数据库服务器 V9.5 和更低版本上,在分区表中不支持数据类型为 XML 的列。

3

不能将数据类型为 XML 的列添加到已包含 1 类索引的表中。从 V9.7 开始,将停止使用 1 类索引,它将被替换为 2 类索引。

4

不能对包含 XML 列的表定义分布键。

5

在 INSTEAD OF 触发器的目标视图中不支持数据类型为 XML 的列。

6

不支持在触发器定义中引用数据类型为 XML 的转换变量。

7

对于一个包含数据类型为 XML 的列的表,用于删除 XML 列的操作必须通过单个 ALTER TABLE 语句来删除此表中的所有 XML 列。

在数据库服务器 V9.5 和更低版本上,以及对于包含数据类型为 XML 的列的表,不能在 ALTER TABLE 语句中指定 REORG 建议的操作。

8

只有在列定义不包含任何选项时,与昵称定义相关联的包装器才支持数据类型为 XML 的列。这样的列将引用从数据源返回的 XML 文档的内容。

9

在函数中的复合 SQL(编译型)语句、触发器或复合 SQL(直接插入型)语句中,不允许引用 XML 数据类型或值。只有在过程中的复合 SQL(编译型)语句中,才支持 XML。

100

在分区数据库环境中,具有 XML 列的表仅在包含数据库目录表的数据库分区(IBMCATGROUP 数据库分区)中受支持。

101

在 DB2 V9.7 之前,ADD DBPARTITIONNUM 命令和 REDISTRIBUTE DATABASE PARTITION GROUP 命令在其中包含具有 XML 列的表的数据库分区组中不受支持。

102

在分区数据库环境中,分解带注释的 XML 模式仅在其中包含数据库目录表的数据库分区(IBMCATGROUP 数据库分区)中受支持。

103

在分区数据库环境中,下列与 XML 相关的命令仅在其中包含数据库目录表的数据库分区(IBMCATGROUP 数据库分区)中受支持。

  • COMPLETE XMLSCHEMA
  • REGISTER XMLSCHEMA
  • ADD XMLSCHEMA DOCUMENT
  • REGISTER XSROBJECT
104

在分区数据库环境中,要让应用程序处理 XML 数据,必须将此应用程序连接至其中包含数据库目录表的数据库分区(IBMCATGROUP 数据库分区)。

105

在分区数据库环境中,不支持具有类型为 XML 的参数或变量的 SQL 函数。

用户响应

操作视原因码而定,如下所示:

1

在数据库服务器 V9.5 和更低版本上,不要对按维组织的表中定义的任何列使用 XML 数据类型。

2

在数据库服务器 V9.5 和更低版本上,不要对分区表中定义的任何列使用 XML 数据类型。

3

在发出 ALTER TABLE 命令来添加类型为 XML 的列之前,请使用附带 CONVERT 参数的 REORG INDEXES ALL 命令将表的现有索引转换为 2 类索引。

4

更改表定义以避免同时使用分布键和 XML 列。在 CREATE TABLE 语句中,这可以通过移除 DISTRIBUTE BY 或 PARTITIONING KEY 子句或者通过移除所有具有 XML 数据类型的列来实现。在 ALTER TABLE 语句中,在添加类型为 XML 的列之前删除分布键,或者在添加分布键之前删除所有 XML 列。

5

不要指定包含数据类型为 XML 的列的视图作为 INSTEAD OF 触发器目标。

6

不要在触发器定义中使用数据类型为 XML 的转换变量。

7

对于一个包含多个数据类型为 XML 的列的表,要么不删除任何 XML 列,要么使用单个 ALTER TABLE 语句来删除此表中的所有 XML 列。

在数据库服务器 V9.5 和更低版本上,请从 ALTER TABLE 语句中移除 REORG 建议的任何替代操作。

8

在昵称定义中,检查具有列选项的类型为 XML 的列。对于每个不正确的列定义,请更改数据类型或者移除所有列选项。

9

从复合 SQL(编译型)语句中移除 XML 数据类型或值引用,或者将该复合 SQL(编译型)语句包括在 SQL 过程中。

100

要创建具有 XML 列的表,请在 IBMCATGROUP 数据库分区中创建此表。

101

通过下列其中一种方式对此原因码作出响应:

  • 如果由于尝试向其中包含具有 XML 列的表的数据库分区组添加新的数据库分区而返回了此消息,那么向其中不包含具有 XML 列的表的数据库分区组添加新的数据库分区。
  • 如果由于尝试在其中包含具有 XML 列的表的数据库分区组中重新分发数据而返回了此消息,那么不需要作出响应。不支持在其中包含具有 XML 列的表的数据库分区组中重新分发数据。
102

在分区数据库环境中,要使用“分解带注释的 XML 模式”方法来分解 XML 文档,请在其中包含数据库目录表的数据库分区(IBMCATGROUP 数据库分区)中执行分解。

103

要执行与 XML 相关的操作,请在 IBMCATGROUP 数据库分区中运行必需的命令。

104

要处理 XML 数据,请将应用程序连接至目录分区(IBMCATGROUP 数据库分区)。

105

要在分区数据库环境中使用 SQL 函数,请改变该函数以移除类型为 XML 的任何参数和变量。

sqlcode:-1242

sqlstate:42997

SQL1243W 删除 SYSTOOLS.DB2LOOK_INFO db2look 操作表失败。

说明

UPGRADE DATABASE 命令将检查数据库是否具有一个名为 SYSTOOLS.DB2LOOK_INFO 的 db2look 操作表,如果存在,就将其删除。如果数据库包含同名但列定义不同的表,废弃表命令就会失败。

用户响应

在完成数据库升级之后,检查 SYSTOOLS.DB2LOOK_INFO 表的定义。如果此表是系统创建的表,那么应手动将其废弃。如果它是用户创建的表,那么应该将其重命名。否则,执行 ALTER TABLE 和 COPY SCHEMA 语句会失败。

SQL1244W 在下次 COMMIT 时,事务管理器数据库 服务器名 将断开连接。

说明

向正用作 TM 数据库的数据库发出断开连接请求。在处理了下一个 COMMIT 之前,不能完成断开连接。

用户响应

如果必须立即断开正用作 TM 数据库的数据库,那么在继续执行前发出 COMMIT 语句。

sqlcode:+1244

sqlstate:01002

SQL1245N 已达到连接限制。此客户机不允许更多连接。

说明

对于连接数量受限制或者必须预定义的环境,已经达到并发数据库连接的最大数量。

用户响应

在建立任何连接之前,通过发出 SET CLIENT 命令来设置最大连接数。

sqlcode:-1245

sqlstate:08001

SQL1246N 当存在连接时,不能更改连接设置。

说明

发生了下列情况之一:
  • 尝试更改使用 SET CLIENT API 的应用程序的连接设置。 但是此操作被拒绝,因为存在一个或多个连接。
  • 应用程序包含“DB2 调用级接口 API”调用和对包含嵌入式 SQL 的函数的调用,并且未使用 CLI API 来调用连接管理。

用户响应

可能的操作:
  • 确保在尝试发出 SET CLIENT API(sqlesetc 或 sqlgsetc)或 CLP 命令之前,应用程序已与所有服务器断开连接。
  • 如果应用程序正在使用 CLI,那么确保所有连接管理请求都是通过“DB2 调用级接口 API”发出的。

SQL1247N 正在 XA 事务处理环境中运行的应用程序必须使用 SYNCPOINT TWOPHASE 连接设置。

说明

应用程序是用选项 SYNCPOINT ONEPHASE 或 SYNCPOINT NONE 来预编译的,或者使用 SET CLIENT API 来将 SYNCPOINT 连接设置更改为这些值的其中之一。 这些设置对于导致执行事务处理同步点命令(例如,CICS SYNCPOINT)的应用程序无效。注意,SYNCPOINT ONEPHASE 是缺省预编译器选项。

用户响应

可能的操作:
  • 使用预编译器选项 SYNCPOINT TWOPHASE 来重新预编译应用程序。
  • 修改程序,以便在执行其他任何处理之前,调用 SET CLIENT API 来将连接选项设置为 SYNCPOINT TWOPHASE。

sqlcode:-1247

sqlstate:51025

SQL1248N 未用事务管理器定义数据库 数据库别名

说明

尝试访问尚未被事务管理器打开的数据库。为了参与两阶段落实进程,必须向事务管理器定义数据库。

用户响应

将数据库定义为“分布式事务处理”环境的事务管理器的资源管理器。例如,在 CICS 环境中,这要求将数据库添加至 XAD 文件,并在 XAD 条目的 XAOpen 字符串中提供数据库别名。

sqlcode:-1248

sqlstate:42705

SQL1249N 不支持 DATALINK 数据类型。必须废弃或改变 数据库对象 以避免使用 DATALINK 数据类型。

说明

db2ckupgrade 命令已确定了出现的 DATALINK 数据类型,该数据类型将导致对数据库进行升级失败。

使用 DATALINK 数据类型的数据库对象包括表、视图、函数、方法、单值类型和结构化数据类型。

用户响应

在尝试对数据库进行升级之前,请除去或更新 数据库对象 标识的数据库对象,该对象引用了 DATALINK 数据类型。