SQL4001N 上列 中的字符 character 无效。

说明

指定的字符不是 SQL 语句中的有效字符。

无法处理该语句。

用户响应

移除或替换无效的字符。

SQL4002N token-1token-2 是未声明的主变量,不能同时用作单个 SQL 语句中的描述符名称。

说明

未将指定的标识符声明为主机变量。 描述符名在使用前未声明。 因为单一语句中有多个描述符名无效,所以至少其中一个主机变量无效。

无法处理该语句。

用户响应

更正语句中描述符名或未声明的主机变量的使用。 注意,此语句还可能包含其他未声明的主机变量。

SQL4003N 此版本的预编译器不支持第 上的 SQL 语句。

说明

预编译器的发行版号与数据库管理器的安装版本不兼容。 指定的语句受数据库管理器支持,但不受预编译器支持。

无法处理该语句。

用户响应

用当前版本的预编译器重复预编译过程。

SQL4004N 程序包名无效。

说明

程序包名包含无效字符。 或者是名称太长,或者是未随 PACKAGE 选项一起指定名称。

未创建程序包。

用户响应

重新提交该命令,并指定有效程序包名,或不指定 PACKAGE 选项。

SQL4005N 在第 上的位置 位置 处发现无效的标记 token

说明

在 SQL 语句的指定标记 标记 处检测到语法错误。

无法处理该语句。

用户响应

检查语句,特别是检查指定标记周围。 更正语法。

SQL4006N 结构嵌套太深。

说明

嵌套结构数超过最大值 25。

无法处理该语句。

用户响应

减少嵌套结构数。

SQL4007N 主机结构 host-structure 没有字段。

说明

在主结构 主结构 中找不到字段。

无法处理该语句。

用户响应

对主结构添加字段。

SQL4008N 即使具有完全限定,也不能唯一引用主变量 name

说明

即使在完全限定的情况下,主机变量 名称 也与至少一个其他未限定或部分限定的主机变量相匹配。

无法处理该命令。

用户响应

重命名该主机变量。

SQL4009N 数据长度的表达式无效。

说明

数据长度表达式带有语法错误,或太复杂。

无法处理该语句。

用户响应

检查大小表达式的语法。

SQL4010N 非法嵌套复合 SQL 语句。

说明

当检测到 BEGIN COMPOUND 子句作为“复合 SQL”语句的子语句时,返回此错误。

用户响应

重新提交预编译,而不指定嵌套的 BEGIN COMPOUND。

SQL4011N 复合 SQL 语句中的 SQL 子语句无效。

说明

当在复合 SQL 语句中检测到无效子语句时返回此错误。 有效语句是:
  • ALTER TABLE
  • COMMENT ON
  • CREATE INDEX
  • CREATE TABLE
  • CREATE VIEW
  • 定位 DELETE
  • 搜索 DELETE
  • DROP
  • GRANT
  • INSERT
  • LOCK TABLE
  • REVOKE
  • SELECT INTO
  • 定位 UPDATE
  • 搜索 UPDATE

用户响应

重新提交预编译而不指定无效子语句。

sqlcode:-4011

sqlstate:42910

SQL4012N 在复合 SQL 语句中使用 COMMIT 无效。

说明

在 COMPOUND SQL 语句中找到 COMMIT 后,如果检测到子语句,那么返回此错误。

用户响应

使 COMMIT 子语句成为最后一条子语句,并重新提交预编译。

SQL4013N 在没有先前 BEGIN 复合语句的情况下找到了 END 复合语句。

说明

当找到 END COMPOUND 语句,但前面没有 BEGIN COMPOUND 时,返回此错误。

用户响应

或者移除该 END COMPOUND,或添加一个 BEGIN COMPOUND,并重新提交预编译。

SQL4014N 无效的复合 SQL 语法。

说明

当复合 SQL 语句包含语法错误时就会返回此错误。 原因可能包括:
  • END COMPOUND 丢失
  • 其中一个子语句是空的(长度为零,或是空白)。

用户响应

修正语法错误,并重新进行预编译。

SQL4015N 预处理期间发生错误。

说明

外部预处理器已终止,有一个或多个错误。

无法处理该命令。

用户响应

请参阅相应源文件的 “.err” 文件以了解更多详细信息。

SQL4016N 找不到指定的预处理器。

说明

找不到通过 PREPROCESSOR 选项指定的预处理器。

无法处理该命令。

用户响应

确保可从当前目录执行预处理器,并检查 PREPROCESSOR 选项的语法。

SQL4017W 预处理已成功完成。

说明

输入文件的预处理已成功完成,使用了通过 PREPROCESSOR 选项指定的外部命令。

用户响应

不需要执行任何操作。

SQL4018W 开始处理预处理文件 preprocessed-file

说明

预编译器现在正在处理预处理文件。

用户响应

不需要执行任何操作。

SQL4019W 已完成处理预处理文件 preprocessed-file

说明

预编译器已完成处理预处理文件。

用户响应

不需要执行任何操作。

SQL4020N "long" 主变量 token-1 无效。 转而使用“sqlint32”。

说明

如果 LONGERROR YES 预编译选项有效,或尚未指定预编译选项 LONGERROR,而平台具有 8 个字节的 'long',那么必须用数据类型 'sqlint32' 而不是 'long' 来声明 INTEGER 主机变量。

在具有 8 字节 'long' 类型的 64 位平台上,可以使用预编译选项 LONGERROR NO 来指定要对 BIGINT 数据类型使用 'long' 主机变量。 为了获得最大的可移植性,建议分别对 INTEGER 和 BIGINT 数据类型使用 'sqlint32' 和 'sqlint64'。

用户响应

用在消息中指定的数据类型替换主机变量的当前数据类型。

SQL4100I sqlflag-type SQL 语言语法由标志程序用于语法检查。

说明

已通过预编译器的 SQL 语句将由标志程序对指定的语法进行检查。 当有语法偏差时,将对该语句发出警告消息。

继续处理。

用户响应

无。 这只是一条参考消息。

SQL4102W 在以文本 text开头的标记处发生 SQL 语法偏差。

说明

标志在 SQLFLAG 预编译器选项中指定的 SQL 语言语法中检测到违规。

继续处理。

用户响应

更正 SQL 语句。

SQL4103W 数据定义语句不在 CREATE SCHEMA 语句中。

说明

FIPS 标准要求将所有数据定义语句都包含在 CREATE SCHEMA 语句中。

继续处理。

用户响应

更正 SQL 语句。

SQL4104W 存在非标准嵌入式注释。

说明

嵌入在 SQL 语句中的注释不满足所选标准的需求。 该注释没有以至少两个连续连字符开始

继续处理。

用户响应

更正 SQL 语句。

SQL4105W 发生了 SQL 语法偏差。 该语句不完整。

说明

在找到所有必需的元素之前,该 SQL 语句已终止。

继续处理。

用户响应

更正 SQL 语句。

SQL4106W 标识 identifier 超过 18 个字符。

说明

授权标识符、表标识符、列名、相关名、模块名、游标名、过程名称或参数名的长度超过 128 字节。

继续处理。

用户响应

更正 SQL 语句。

SQL4107W 具有无效的长度,精度或小数位属性。

说明

尚不满足下列条件之一:
  • 长度值应该大于零。
  • 精度值应该大于零。
  • 小数位值不应该大于精度。

继续处理。

用户响应

更正 SQL 语句。

SQL4108W 指示符变量的数据类型不是精确数字,或者具有非零刻度。

说明

指示符变量的数据类型应是小数位为零的精确数字。

继续处理。

用户响应

更正 SQL 语句。

SQL4109W SET FUNCTION SPECIFICATION 引用列

说明

尚不满足下列条件之一:
  • DISTINCT SET FUNCTION的COLUMN REFERENCE 不能引用从 SET FUNCTION SPECIFICATION 派生的列。
  • ALL SET FUNCTION 的 VALUE EXPRESSION 中的 COLUMN REFERENCE 不能引用从 SET FUNCTION SPECIFICATION 派生的列。

继续处理。

用户响应

更正 SQL 语句。

SQL4110W 包含 的 VALUE EXPRESSION 不能包含运算符。

说明

VALUE EXPRESSION 不能在 OUTER REFERENCE COLUMN REFERENCE 中包括运算符。

继续处理。

用户响应

更正 SQL 语句。

SQL4111W 对于 ALL 列函数 function, COLUMN REFERENCE 缺失或无效。

说明

ALL SET FUNCTION SPECIFICATION 的 VALUE EXPRESSION 应该包括 COLUMN REFERENCE。

继续处理。

用户响应

更正 SQL 语句。

SQL4112W 不唯一,需要限定。

说明

指定的列在当前作用域内不唯一。 必须给出限定以唯一标识必需的列。

继续处理。

用户响应

更正 SQL 语句。

SQL4113W VALUE EXPRESSION 可能不包含 SET FUNCTION SPECIFICATION。

说明

ALL SET FUNCTION 的 VALUE EXPRESSION 不能包含 SET FUNCTION SPECIFICATION。

继续处理。

用户响应

更正 SQL 语句。

SQL4114W 未标识当前作用域内表的列。

说明

尚不满足下列条件之一:
  • 用作限定符的表或相关名不存在。
  • 列名不存在于当前作用域或限定符的作用域中。

继续处理。

用户响应

更正 SQL 语句。

SQL4115W 包含 OUTER REFERENCE 列 的列函数不在 HAVING 子句的子查询中。

说明

如果列函数包含 OUTER REFERENCE COLUMN REFERENCE,那么它必须包含在 HAVING 子句的子查询中。

继续处理。

用户响应

更正 SQL 语句。

SQL4116W SUM 或 AVG 函数的结果不能是字符串。

说明

字符串对于 SUM 或 AVG SET FUNCTION SPECIFICATION 的结果无效。

继续处理。

用户响应

更正 SQL 语句。

SQL4117W 运算符 运算符 在此上下文中无效。

说明

尚不满足下列条件之一:
  • 包含 DISTINCT SET FUNCTION 的 VALUE EXPRESSION 不能包括二元运算符。
  • 跟在一元运算符后面的第一个字符不能是加号或减号。
  • 如果 PRIMARY 是字符串类型的,那么 VALUE EXPRESSION 不应包含运算符。

继续处理。

用户响应

更正 SQL 语句。

SQL4118W exptype EXPRESSION 正在比较不兼容的数据类型。

说明

下列其中一项的数据类型(由 exptype 标识)不匹配:
  • exptype = COMPARISON - 比较运算符必须匹配
  • exptype = BETWEEN - 三个 VALUE EXPRESSION 必须匹配
  • exptype = IN - VALUE EXPRESSION、子查询和所有 VALUE SPECIFICATION 必须匹配
  • exptype = QUANTIFIED - VALUE EXPRESSION 和子查询必须匹配

继续处理。

用户响应

更正 SQL 语句。

SQL4119W LIKE 谓词中的操作数不是字符串。

说明

尚不满足下列条件之一:
  • LIKE 谓词中列的数据类型不是字符串。
  • LIKE 谓词中模式的数据类型不是字符串。

继续处理。

用户响应

更正 SQL 语句。

SQL4120W ESCAPE 字符必须是单字节字符串。

说明

LIKE 谓词中的转义字符的数据类型必须是长度为 1 的字符串。

继续处理。

用户响应

更正 SQL 语句。

SQL4121W WHERE 子句, GROUP BY 子句或 HAVING 子句对于分组视图 schema-name.view无效。

说明

如果 FROM 子句中标识的表是分组视图,那么 TABLE EXPRESSION 一定不能包含 WHERE 子句、GROUP BY 子句或 HAVING 子句。

继续处理。

用户响应

更正 SQL 语句。

SQL4122W schema-name.name 在 FROM 子句中多次出现。

说明

尚不满足下列条件之一:
  • 表名在 FROM 子句中出现多次。
  • 相关名与表名或 FROM 子句中的另一个相关名完全相同。

继续处理。

用户响应

更正 SQL 语句。

SQL4123W 在分组视图的 FROM 子句中只允许一个表引用。

说明

如果表名标识的表是分组视图,那么 FROM 子句必须刚好只包含一个表引用。

继续处理。

用户响应

更正 SQL 语句。

SQL4124W 对从列函数派生的列 的引用在 WHERE 子句中无效。

说明

直接包含在 WHERE 子句的 SEARCH CONDITION 中的 VALUE EXPRESSION 一定不能包括对从列函数派生的列的应用。

继续处理。

用户响应

更正 SQL 语句。

SQL4125W 当 WHERE 子句具有列函数时, HAVING 子句必须包含 WHERE 子句。

说明

如果直接包含在 SEARCH CONDITION 中的 VALUE EXPRESSION 是列函数,那么 WHERE 子句必须包含在 HAVING 子句中。

继续处理。

用户响应

更正 SQL 语句。

SQL4126W 的 COLUMN REFERENCE 必须是 OUTER REFERENCE。

说明

如果直接包含在 SEARCH CONDITION 中的 VALUE EXPRESSION 是函数,那么列函数表达式中的 COLUMN REFERENCE 必须是 OUTER REFERENCE。

继续处理。

用户响应

更正 SQL 语句。

SQL4127W 在当前作用域内重复。

说明

指定的列在当前作用域内重复。

继续处理。

用户响应

更正 SQL 语句。

SQL4128W column-name 的 COLUMN REFERENCE 应该是分组列,或者应该在列函数中指定。

说明

HAVING 子句的 SEARCH CONDITION 中子查询所包含的每个 COLUMN REFERENCE 都必须引用分组列,或在列函数中指定。

继续处理。

用户响应

更正 SQL 语句。

SQL4129W 使用 SELECT LIST of * 时, DEGREE of table schema-name.table 应该是 1。

说明

如果在任何除 EXISTS 之外的谓词的子查询中指定值为 * 的 SELECT LIST,那么 TABLE EXPRESSION 的 DEGREE 必须为 1。

继续处理。

用户响应

更正 SQL 语句。

SQL4130W 列函数对于以表 schema-name.table开头的 TABLE EXPRESSION 无效。

说明

尚不满足下列条件之一:
  • 如果 TABLE EXPRESSION 是分组视图,那么子查询的 SELECT LIST 不能包含 SET FUNCTION SPECIFICATION。
  • 如果 TABLE EXPRESSION 是分组视图,那么 QUERY SPECIFICATION 的 SELECT LIST 不能包含列函数。

继续处理。

用户响应

更正 SQL 语句。

SQL4131W 的 COLUMN REFERENCE 无效。

说明

尚不满足下列条件之一:
  • 对于分组表,COLUMN REFERENCE 必须引用分组列,或在 SET FUNCTION SPECIFICATION 中指定。
  • 如果不是分组表,且 VALUE EXPRESSION 包括 SET FUNCTION SPECIFICATION,那么每个 COLUMN REFERENCE 都必须在 SET FUNCTION SPECIFICATION 中指定。

继续处理。

用户响应

更正 SQL 语句。

SQL4132W 多次指定了 DISTINCT。

说明

尚不满足下列条件之一:
  • 一定不能在 QUERY SPECIFICATION 中多次指定 DISTINCT,这不包括该 QUERY SPECIFICATION 的任何子查询。
  • 一定不能在子查询中多次指定 DISTINCT,这不包括包含在该子查询中的任何子查询。

继续处理。

用户响应

更正 SQL 语句。

SQL4133W 比较谓词子查询不能包含 GROUP BY 或 HAVING 子句。

说明

如果在 COMPARISON PREDICATE 中指定子查询,那么其 FROM 子句标识有名表的TABLE EXPRESSION 一定不能包含 GROUP BY 子句或 HAVING 子句。

继续处理。

用户响应

更正 SQL 语句。

SQL4134W 比较谓词子查询无法标识分组视图。

说明

如果在 COMPARISON PREDICATE 中指定子查询,那么其 FROM 子句标识有名表的 TABLE EXPRESSION 一定不能标识分组视图。

继续处理。

用户响应

更正 SQL 语句。

SQL4135W 存在无效的 AUTHORIZATION IDENTIFIER authid

说明

表名前缀 AUTHORIZATION IDENTIFIER 无效。

继续处理。

用户响应

更正 SQL 语句。

SQL4136W 表或视图 schema-name.name 已存在。

说明

指定的表名或视图名已存在于目录中。

继续处理。

用户响应

更正 SQL 语句。

SQL4137W 缺少 COLUMN DEFINITION。

说明

应该对 CREATE TABLE 指定至少一个 COLUMN DEFINITION。

继续处理。

用户响应

更正 SQL 语句。

SQL4138W 目标的数据类型 type1 与源的数据类型 type2 不兼容。

说明

数据类型应该匹配:
  • 在 FETCH 语句中的源和目标之间。
  • 在 SELECT 语句中的源和目标之间。

继续处理。

用户响应

更正 SQL 语句。

SQL4139W 必须为 schema-name.table指定 VIEW COLUMN LIST。

说明

如果 QUERY SPECIFICATION 指定的表中的任何两列具有相同的列名,或者,如果该表的任何列是未命名的列,那么必须指定 VIEW COLUMN LIST。

继续处理。

用户响应

更正 SQL 语句。

SQL4140W 发生了错误,导致标志器停止。 模块名 = 模块名。 内部错误代码:错误代码

说明

标志遇到内部错误。 如果还指定了语法、绑定文件或程序包选项,那么继续处理,但标志操作不继续。 否则,处理终止。

用户响应

记录消息中的此消息号(SQLCODE)、模块名和错误代码。 与技术服务代表联系,并提供此信息。

SQL4141W 尝试在模块 module-name中生成消息 message-number 时发生错误。

说明

FLAGGER 尝试生成一条未定义的消息。

继续处理。

用户响应

记录消息中的此消息号(SQLCODE)、模块名和错误代码。 与技术服务代表联系,并提供此信息。

SQL4142W 没有足够的内存用于标志程序操作。 内部错误代码:错误代码

说明

没有足够的内存可用于标志程序操作。 如果还指定了语法、绑定文件或程序包选项,那么继续处理,但标志操作不继续。 否则,处理终止。

用户响应

确保系统有足够的实际和虚拟内存,并移除任何不必需的后台进程。

SQL4143W 释放标志程序内存时发生错误。 内部错误代码:错误代码

说明

标志程序不能释放分配的内存。 如果还指定了语法、绑定文件或程序包选项,那么继续处理,但标志操作不继续。 否则,处理终止。

用户响应

如果需要加标志,那么重新启动预编译。

SQL4144W 在模块 module-name中调用 FLAGGER 时发生内部错误。 内部错误代码:错误代码

说明

FLAGGER 遇到内部错误。

处理继续,但 FLAGGER 操作中断。

用户响应

记录消息中的此消息号(SQLCODE)、模块名和错误代码。 与技术服务代表联系,并提供此信息。

SQL4145W FLAGGER 访问系统目录期间发生错误。 加标志操作仍然继续,以便只检查语法。 SQLCODE = nnn SQLERRP = modname SQLERRD1 = nnn Creator = creatorname Table = tablename

说明

FLAGGER 访问系统目录期间发生了内部错误。

处理继续,但只进行标志程序语法检查。

用户响应

记录消息中的此消息号(SQLCODE)、模块名和错误代码。 与技术服务代表联系,并提供此信息。

SQL4146W 发生内部错误,导致语义处理停止。 模块名 = 模块名。 内部错误代码:错误代码

说明

FLAGGER 在语义分析例程中遇到严重内部错误。

处理继续,但只进行标志程序语法检查。

用户响应

记录消息中的此消息号(SQLCODE)、模块名和错误代码。 与技术服务代表联系,并提供此信息。

SQL4147W 标志器版本号无效。

说明

将无效标志程序版本号传送至“预编译器服务”COMPILE SQL STATEMENT API。 如果还指定了语法、绑定文件或程序包选项,那么继续处理,但标志操作不继续。 否则,处理终止。

用户响应

提供有效的标志程序版本号。 请参阅命令参考手册。

SQL4170W 必须将列 声明为 NOT NULL。

说明

所有标识为 UNIQUE 的列都必须用 NOT NULL 选项定义。

继续处理。

用户响应

更正 SQL 语句。

SQL4171W 查看的表 schema-name 必须可更新。

说明

当指定 WITH CHECK OPTION 子句时,查看的表必须是可更新的。

继续处理。

用户响应

更正 SQL 语句。

SQL4172W 列名的数目无效。

说明

VIEW COLUMN LIST 中的列名数应该与由 QUERY SPECIFICATION 指定的表的 DEGREE 相同。

继续处理。

用户响应

更正 SQL 语句。

SQL4173W 在使用游标之前,必须声明游标 cursor

说明

指定的游标尚未在 DECLARE CURSOR 语句中声明。

继续处理。

用户响应

更正 SQL 语句。

SQL4174W 游标 游标 已声明。

说明

指定的游标已在 DECLARE CURSOR 语句中声明。

继续处理。

用户响应

更正 SQL 语句。

SQL4175W 只有 * 或列名在此上下文中有效。

说明

指定 UNION 时,两个由 QUERY EXPRESSION 和 QUERY TERM 标识的 TABLE EXPRESSION 的规范的 SELECT LIST 应该由 * 或 COLUMN REFERENCE 组成。

继续处理。

用户响应

更正 SQL 语句。

SQL4176W 由 QUERY EXPRESSION (以 模式名称 1.表 1 开头) 和 QUERY TERM (以 模式-名称 2.表 2 开头) 标识的表的描述应该完全相同。

说明

指定 UNION 时,除了列名之外,两个表的描述也应该完全相同。

继续处理。

用户响应

更正 SQL 语句。

SQL4177W SORT SPECIFICATION number 在游标 游标的 DEGREE 外部。

说明

如果 SORT SPECIFICATION 包含无符号整数,那么它应该大于 0,且不大于表中的列数。

继续处理。

用户响应

更正 SQL 语句。

SQL4178W schema-name. 是只读表。

说明

对只读表指定了 DELETE、INSERT 或 UPDATE。

继续处理。

用户响应

更正 SQL 语句。

SQL4179W schema-name. 不得在 SEARCH CONDITION 中包含的任何子查询的 FROM 子句中标识。

说明

DELETE 或 UPDATE 中指定的表不能在其 SEARCH CONDITION 所包含的任何子查询的 FROM 子句中使用。

继续处理。

用户响应

更正 SQL 语句。

SQL4180W schema-name1.table1 不是 DECLARE CURSOR 语句中指定的第一个表 schema-name2.table2

说明

DELETE 或 UPDATE 语句中指定的表应该是 DECLARE CURSOR 语句的 FROM 子句中指定的第一个表。

继续处理。

用户响应

更正 SQL 语句。

SQL4181W TARGET SPECIFICATIONs 的数目与游标 游标的 DEGREE 不匹配。

说明

FETCH 语句中的 TARGET SPECIFICATION 数与指定的表的 DEGREE 不匹配。

继续处理。

用户响应

更正 SQL 语句。

SQL4182W INSERT 语句的目标表 模式名. 也在 FROM 子句或子查询中。

说明

有名表一定不能在 QUERY SPECIFICATION 或该 QUERY SPECIFICATION 所包含的任何子查询中的 FROM 子句中标识。

继续处理。

用户响应

更正 SQL 语句。

SQL4183W 指定的列数与指定的值数不匹配。

说明

在 INSERT 语句中,指定的列数与指定的值的数目不匹配。

继续处理。

用户响应

更正 SQL 语句。

SQL4184W 指定的列数与以表 schema-name.table开头的 QUERY SPECIFICATION 的 DEGREE 不匹配。

说明

在 INSERT 语句中,指定的列数与 QUERY SPECIFICATION 中指定的表的 DEGREE 不匹配。

继续处理。

用户响应

更正 SQL 语句。

SQL4185W column 与 INSERT 或 UPDATE 项之间存在数据类型或长度不匹配。

说明

尚不满足下列条件之一:
  • 如果列名的数据类型是字符串,那么 INSERT 或 UPDATE 语句中的对应项应该是长度等于或小于列名长度的字符串。
  • 如果列名的数据类型为精确数字,那么 INSERT 或 UPDATE 语句中的对应项应该是精确数字。
  • 如果列名的数据类型是近似数字,那么 INSERT 或 UPDATE 语句中的对应项应该是近似数字或精确数字。

继续处理。

用户响应

更正 SQL 语句。

SQL4186W 不能在此上下文中使用 GROUP BY 或 HAVING 子句或标识分组视图。

说明

SELECT 语句中 TABLE EXPRESSION 的 FROM 子句中标识的表不应该包括 GROUP BY 或 HAVING 子句,并且不应标识分组视图。

继续处理。

用户响应

更正 SQL 语句。

SQL4187W SELECT LIST 中指定的元素数目应该与 SELECT TARGET LIST 中的数目相匹配。

说明

在 SELECT 语句中,SELECT LIST 中指定的元素数应该与 SELECT TARGET LIST 中的元素数相匹配。

继续处理。

用户响应

更正 SQL 语句。

SQL4188W UPDATE 语句的 SET 子句中不允许使用列函数。

说明

UPDATE 语句的 SET 子句中的 VALUE EXPRESSION 不应该包括列函数。

继续处理。

用户响应

更正 SQL 语句。

SQL4189W 不能为 NOT NULL 列 指定 NULL。

说明

如果 UPDATE 语句的 SET 子句中指定了 NULL,那么对应的列应该允许 null。

继续处理。

用户响应

更正 SQL 语句。

SQL4190W 引用了无法识别的数据类型的主变量。 该主机变量位置是 位置

说明

位置 位置 处的主机变量引用的数据类型不能为标准所识别。

继续处理。

用户响应

更正 SQL 语句。

SQL4191W 无法识别列 column-name 的数据类型。

说明

标准不识别该列的数据类型。

继续处理。

用户响应

更正 SQL 语句。

SQL4192W schema-name。在目录中找不到

说明

系统目录中不存在有名表或视图。

SQL4300N 未在此平台上安装或正确配置 Java 支持。

说明

未在此服务器上安装和配置对 Java 存储过程和用户定义的函数的支持。

用户响应

确保为该服务器安装了兼容的“Java 运行时环境”或 Java Development Kit。 确保正确地设置了“JDK_PATH”配置参数。

sqlcode:-4300

sqlstate:42724

SQL4301N Java 或 .NET 解释器启动或通信失败,原因码为 reason-code

说明

尝试启动或与 Java 解释器通信时出错。 原因码为:
1
Java 环境变量或 Java 数据库配置参数无效。
2
对 Java 解释器的“Java 本机接口”调用失败。
3
"db2java.zip" 文件可能毁坏或丢失。
4
Java 解释器自己终止且不能重新启动。
5
无法装入从属 .NET 库。
6
调用 .NET 解释器失败。

用户响应

对于 Java,确保正确设置了 Java 数据库配置参数(jdk_path 和 java_heap_sz)。 确保安装了支持的 Java 运行时环境。 确保内部 DB2 类(COM.ibm.db2)未被用户类覆盖。

对于 .NET,确保正确配置了数据库管理器实例以运行 .NET 过程或函数(mscoree.dll 必须出现在系统 PATH 中)。 确保 db2clr.dll 出现在 sqllib/bin 目录中,并且 IBM.Data.DB2 安装在全局程序集缓存中。

sqlcode:-4301

sqlstate:58004

SQL4302N 过程或用户定义的函数 name,特定名称 spec-name 异常中止 string

说明

过程或用户定义的函数由于异常而异常终止。 管理通知日志包含异常终止例程的堆栈回溯。

用户响应

调试该例程以消除异常。

sqlcode:-4302

sqlstate:38501

SQL4303N Java 存储过程或用户定义的函数 name,无法从外部名 string标识特定名称 spec-name

说明

声明此存储过程或用户定义的函数的 CREATE PROCEDURE 或 CREATE FUNCTION 语句含有格式无效的 EXTERNAL NAME 子句。 外部名必须有如下格式:“package.subpackage.class!method”。

用户响应

提交更正过的 CREATE PROCEDURE 或 CREATE FUNCTION 语句。

sqlcode:-4303

sqlstate:42724

SQL4304N Java 存储过程或用户定义的函数 name,特定名称 spec-name 无法装入 Java 类 class,原因码 reason-code

说明

不能装入由 CREATE PROCEDURE 或 CREATE FUNCTION 语句的 EXTERNAL NAME 子句给定的 Java 类。 原因码为:
1
在 CLASSPATH 上找不到该类。
2
该类未实现必需的接口 (“COM.ibm.db2.app.StoredProc” 或 “COM.ibm.db2.app.UDF”) 或缺少 Java “public” 访问权标志。
3
缺省构造函数失败或不可用。
4
无法为 “jdbc:default:connection” 装入驱动程序。
5
无法建立缺省上下文。

用户响应

确保编译的“.class”文件安装在 CLASSPATH 中,例如在“sqllib/function”下。 确保它实现必需的 Java 接口且是“public”。

sqlcode:-4304

sqlstate:42724

SQL4306N Java 存储过程或用户定义的函数 name,特定名称 spec-name 无法调用 Java 方法 method,特征符 string

说明

找不到由 CREATE PROCEDURE 或 CREATE FUNCTION 语句的 EXTERNAL NAME 子句给定的 Java 方法。 它已声明的自变量列表可能与数据库期望的自变量列表不匹配,或者它可能不是“public”实例方法。

用户响应

确保 Java 实例方法存在,标志为“public”且具有此调用期望的自变量列表。

sqlcode:-4306

sqlstate:42724

SQL4400N authorization-ID 无权在 DB2 管理服务器上执行管理任务。

说明

在 DB2 管理服务器上,用户没有执行已尝试的管理操作所需要的权限。

用户响应

使用具有 DASADM 权限的用户标识来向 DB2 管理服务器提交请求。 对 DB2 管理服务器执行任何管理操作都需要 DASADM 权限。 DASADM 组是一个 DB2 管理服务器配置参数。 通过使用 GET ADMIN CONFIGURATION 命令查看 DB2 管理服务器配置参数来验证 DASADM 组的当前设置。 要修改任何配置参数的值,使用 UPDATE ADMIN CONFIGURATION 命令。

SQL4401C DB2 管理服务器在启动期间迂到错误。

说明

在 DB2 管理服务器启动期间遇到错误。

用户响应

参阅 DB2 管理服务器的“首次故障数据捕获日志”以了解其他信息。 如果有必要,请执行适当操作,并尝试重新启动 DB2 管理服务器。

如果问题仍然存在,请与技术服务代表联系。

SQL4402W DB2ADMIN 命令成功。

说明

所有处理均已正常完成。

用户响应

无需进一步执行操作。

SQL4403N 命令的语法无效。

说明

输入该命令时使用了无效的自变量或无效的参数个数。

用户响应

使用有效的自变量重新提交该命令。

SQL4404N DB2 管理服务器不存在。

说明

在机器上找不到 DB2 管理服务器。

用户响应

在机器上创建 DB2 管理服务器。
  • 在 Windows 操作系统上,发出下列命令:
    db2admin create
  • 在 UNIX 平台上,确保您具有 root 用户权限,并从 DB2DIR/instance 目录发出以下命令,其中 DB2DIR 是 DB2的安装路径。<ASName> 表示管理服务器的名称:
    dascrt <ASName>

SQL4405W DB2 管理服务器已存在。

说明

“DB2 管理服务器”已存在于机器上。

用户响应

无需进一步执行操作。

SQL4406W DB2 管理服务器已成功启动。

说明

所有处理均已正常完成。

用户响应

无需进一步执行操作。

SQL4407W DB2 管理服务器已成功停止。

说明

所有处理均已正常完成。

用户响应

无需进一步执行操作。

SQL4408N 未删除 DB2 管理服务器,因为它处于活动状态。

说明

在删除 DB2 管理服务器前必须将其停止。

用户响应

要停止 DB2 管理服务器,请输入以下命令:
    DB2ADMIN STOP

SQL4409W DB2 管理服务器已处于活动状态。

说明

不能处理 DB2ADMIN START 命令,因为 DB2 管理服务器已经活动。

用户响应

无需进一步执行操作。

SQL4410W DB2 管理服务器未处于活动状态。

说明

不能处理 DB2ADMIN STOP 命令,因为 DB2 管理服务器未活动。

用户响应

无需进一步执行操作。

SQL4411N 不允许执行请求的操作,因为服务器实例不是 DB2 管理服务器。

说明

请求的操作仅当对 DB2 管理服务器发出时有效。

用户响应

应使用 DB2ADMIN 命令设置 DB2 管理服务器。

SQL4412N DB2 管理服务器的登录用户帐户无效。

说明

要执行请求的任务,DB2 管理服务器必须在有效的登录用户帐户下运行。 此错误是由于该帐户尚未设置或登录用户帐户未包含有效的 DB2 用户标识所致。

用户响应

如果已设置登录用户帐户,那么确保该帐户使用有效的 DB2 用户标识。

可通过使用如下命令设置 DB2 管理服务器的登录用户帐户:
    DB2ADMIN SETID <userid>
                   <password>

SQL4413W 用法: DB2ADMIN 创建,删除,启动或停止 DB2 管理服务器。

说明

DB2ADMIN 命令语法是:
DB2ADMIN CREATE [
             /USER:<username>
             /PASSWORD:<password>
             ]
         DROP
         START
         STOP [/FORCE]
         SETID <username>
               <password>
         SETSCHEDID <username> <password>
         /h
命令选项是:
创建
创建 DB2 管理服务器
DROP
删除 DB2 管理服务器
START
启动 DB2 管理服务器
STOP
停止 DB2 管理服务器
SETID
设置 DB2 管理服务器的登录帐户
SETSCHEDID
设置由调度程序使用的登录帐户以与工具目录数据库连接。 仅当启用了调度程序且工具目录数据库对于 DB2 管理服务器为远程时,这才是必需的。
/USER
在 DB2ADMIN CREATE 期间指定登录帐户名
/PASSWORD
在 DB2ADMIN CREATE 期间指定登录帐户密码
/FORCE
在 DB2ADMIN STOP 期间停止 DB2 管理服务器而不管它是否正在处理任何请求
/h
显示用法信息

用户响应

发出 DB2ADMIN 命令,并指定其中一个有效命令选项。

SQL4414N DB2 管理服务器未处于活动状态。

说明

除非 DB2 管理服务器是活动的,否则不能处理请求。

用户响应

通过发出命令 DB2ADMIN START 启动 DB2 管理服务器,并重新发出请求。

SQL4701N 超过最大数据分区数 (max-number)。

说明

已尝试超出最大数据分区数。

用户响应

如果带有 EVERY 子句的 CREATE TABLE 语句出错,那么说明时间间隔不够大。 指定一个更大的时间间隔,以减少需要的数据分区数。

如果不带 EVERY 子句的 CREATE TABLE 语句出错,那么说明列示了太多数据分区。 减少指定的数据分区数。

如果在 ALTER TABLE 上发生错误 ... ATTACH PARTITION 或 ALTER TABLE ... ADD PARTITION 语句,该表已具有允许的最大数据分区数。 必须拆离一些数据分区之后,才能添加或连接其他数据分区。

sqlcode:-4701

sqlstate:54054

SQL4702N 由应用程序句柄 application-handle,工作单元标识 unit-of-work-id和活动标识 activity-id 标识的活动不存在。

说明

尝试对由应用程序句柄、工作单元标识和活动标识所标识的活动执行操作。 此活动当前在此数据库中不存在。

用户响应

请验证对应用程序句柄、工作单元标识和活动标识指定的自变量是否与预期活动的那些自变量相匹配。 请注意,在可以对某个活动执行操作前,该活动可能已退出系统。

sqlcode:-4702

sqlstate:5U035

SQL4703N 无法取消由应用程序句柄 application-handle,工作单元标识 unit-of-work-id和活动标识 activity-id 标识的活动。 原因码:原因码

说明

目前,所标识的活动由于其状态或活动类型而无法取消。

用户响应

原因码指示情况和要执行的特定操作。

1
活动处于初始化状态。 初始化完成后,可以取消此活动。
2
活动由于其类型不是受支持的活动类型而无法取消。 如果您要阻止此活动在此系统中继续执行或排队,那么可以通过使用 FORCE APPLICATION 命令强制停止发出此活动的应用程序。

sqlcode:-4703

sqlstate:5U016

SQL4704N 只能为数据库或服务超类 db-or-ssc-name定义一个工作操作集。

说明

已经对指定的数据库或服务超类 数据库或服务超类名称 定义了一个工作操作集。 任何时候,对于任何一个数据库或服务超类,只能定义一个工作操作集。

用户响应

请指定不同的数据库或服务超类,或者删除当前对该数据库或服务超类定义的工作操作集,然后再次尝试执行此请求。

sqlcode:-4704

sqlstate:5U017

SQL4705N 映射工作操作 work-action-name 中指定的服务子类不能是缺省服务子类。

说明

定义工作操作以映射活动时,不能指定缺省服务子类。

用户响应

请指定一个有别于缺省服务子类的服务子类,然后再次尝试执行此请求。

sqlcode:-4705

sqlstate:5U018

SQL4706N 为工作类 work-class-name指定的范围无效。

说明

对 FROM 参数或 TO 参数指定的值无效。 FROM 值必须为零或者为正的双精度值,而 TO 值必须为正的双精度值或 UNBOUNDED(指定无上限)。 如果 TO 值不是 UNBOUNDED,那么它必须大于或等于 FROM 值。

用户响应

请对 FROM 值和 TO 值指定有效值,然后再次尝试执行此请求。

sqlcode:-4706

sqlstate:5U019

SQL4707N 名为 workload-name 的工作负载无法为请求提供服务,因为不允许工作负载访问数据库。

说明

使用 DISALLOW DB ACCESS 选项定义或者改变了所指定的工作负载。 因此,不允许与此工作负载的连接访问数据库。

用户响应

如果不应当允许与所指定工作负载相关联的连接访问此数据库,请确认此连接是否已打算与所指定工作负载相关联。 如果此连接已打算与另一个工作负载相关联,请验证下列事项:

  1. 已打算相关联的工作负载的工作负载属性是否与连接属性相匹配。
  2. 已打算相关联的工作负载是否处于启用状态。
  3. 已打算相关联的工作负载的评估顺序是否早于所指定工作负载的评估顺序。

如果应当允许与所指定工作负载相关联的连接访问此数据库,请使用带有 ALLOW DB ACCESS 选项的 ALTER WORKLOAD 语句来改变所指定的工作负载。

sqlcode:-4707

sqlstate:5U020

SQL4708N 此时此工作单元仅允许 COMMIT 或 ROLLBACK 语句。

说明

已发出下列其中一个语句,而且必须先对发出的语句进行落实或回滚,然后才能发出任何其他 SQL 语句:

  • CREATE SERVICE CLASS、ALTER SERVICE CLASS 或 DROP(对于 SERVICE CLASS)
  • CREATE THRESHOLD、ALTER THRESHOLD 或 DROP(对于 THRESHOLD)
  • CREATE TRUSTED CONTEXT、ALTER TRUSTED CONTEXT 或 DROP(对于 TRUSTED CONTEXT)
  • CREATE WORK ACTION SET、ALTER WORK ACTION SET 或 DROP(对于 WORK ACTION SET)
  • CREATE WORK CLASS SET、ALTER WORK CLASS SET 或 DROP(对于 WORK CLASS SET)
  • CREATE WORKLOAD、ALTER WORKLOAD 或 DROP(对于 WORKLOAD)
  • GRANT(工作负载特权)或 REVOKE(工作负载特权)
  • CREATE AUDIT POLICY、ALTER AUDIT POLICY 或 DROP(对于 AUDIT POLICY)

在工作单元开始时执行的工作负载分配失败。 在当前工作单元结束前,不能处理后续请求。

用户响应

发出另一语句前,请执行 COMMIT 或 ROLLBACK 操作。

sqlcode:-4708

sqlstate:5U021

SQL4709N 无法从工作负载 workload-name的定义中删除最后一个连接属性。

说明

ALTER WORKLOAD 语句应该可以导致从工作负载 工作负载名称 中删除最后一个连接属性,但不允许执行此操作。 在工作负载的定义中必须至少指定一个连接属性。

用户响应

请确保 ALTER WORKLOAD 语句至少保留了工作负载定义中的一个连接属性。

sqlcode:-4709

sqlstate:5U022

SQL4710N 无法删除工作负载 workload-name ,因为它未处于禁用状态,具有活动的工作负载实例,或者具有与之关联的阈值或工作操作集。

说明

尝试删除工作负载 工作负载名称 失败,原因为下列其中一项。

  • 该工作负载尚未被禁用。
  • 该工作负载具有活动的工作负载实例。
  • 某个阈值与该工作负载相关联。
  • 某个工作操作集与该工作负载相关联。

用户响应

请执行下列其中一项操作:

  • 如果该工作负载尚未被禁用,请发出 ALTER WORKLOAD 语句以禁用该工作负载并使新工作负载实例无法进入活动状态。
  • 请等待系统上不再有任何活动的工作负载实例运行,然后发出 DROP 语句以删除该工作负载。
  • 如果某个阈值与该工作负载相关联,请发出 DROP THRESHOLD 语句以删除相关联的阈值。
  • 如果某个工作操作集与该工作负载相关联,请发出 DROP WORK ACTION SET 语句以删除相关联的工作操作集。

sqlcode:-4710

sqlstate:5U023

SQL4711N 无法删除阈值 threshold-name 。 该阈值未被禁用,阈值队列不为空,或者活动正在该阈值的控制下运行。

说明

尝试删除阈值 阈值名称 失败。 该阈值未被禁用,阈值队列不为空,或者活动正在该阈值的控制下运行。

用户响应

如果该阈值尚未被禁用,请将其禁用。 如果该阈值是工作操作集的一部分,那么必须使用 ALTER WORK ACTION SET 语句将其禁用。 如果该阈值不是工作操作集的一部分,请使用 ALTER THRESHOLD 语句将其禁用。 禁用该阈值将阻止新的请求在该阈值的控制下运行。 如果达到了排队阈值的并行限制,那么执行 DISABLE 操作可阻止新的请求加入该队列。 请等待直到当前正在执行的请求完成,或者队列中不再有任何请求,然后再次发出 DROP THRESHOLD 语句。

sqlcode:-4711

sqlstate:5U025

SQL4712N 已停止活动或请求,因为已超过阈值 threshold-name 。 原因码:原因码

说明

您可以通过创建阈值来标识行为异常的工作并作出响应,以帮助维护系统稳定性。 例如,您可以通过使用 UOWTOTALTIME 工作单元阈值来限制工作单元的执行时间量。 也可以通过使用 SQLTEMPSPACE 活动阈值来限制给定活动可以对成员使用的系统临时表空间量。

当超过阈值并因此而导致相关联的活动或请求停止时,将返回此消息。

原因码指示超过阈值的原因:

1

无法对溢出代理程序进行排队。 活动正在使用溢出代理程序,并且已超过协调程序连接数或数据库协调程序活动数。

2

已达到每个数据库分区的最大连接数(TOTALMEMBERCONNECTIONS 条件)。

3

已达到每个数据库分区在特定服务超类中的最大连接数和最大排队连接数(QUEUEDCONNECTIONS 或 TOTALSCMEMBERCONNECTIONS 条件)。

4

已达到每个数据库分区的最大工作负载出现次数(CONCURRENTWORKLOADOCCURRENCES 条件)。

5

已达到每个数据库分区的最大工作负载活动数(CONCURRENTWORKLOADACTIVITIES 条件)。

6

已达到域中所指定实施作用域的数据库协调程序最大活动数和已排队的数据库协调程序最大活动数(CONCURRENTDBCOORDACTIVITIES 或 QUEUEDACTIVITIES 条件)。 在 DB2 pureScale 环境中,实施作用域处于成员级别(MEMBER 实施作用域)。 在非 DB2 pureScale 的环境中,实施作用域处于数据库级别(DATABASE 实施作用域)。

7

活动的估计成本超过了阈值所允许的成本(ESTIMATEDSQLCOST 条件)。

8

对活动返回的行数将超过阈值所允许的行数(SQLROWSRETURNED 条件)。

9

活动的最大总时间已超过阈值所允许的时间(ACTIVITYTOTALTIME 条件)。

10

为活动请求的临时系统空间的数量超过阈值所允许的数量(SQLTEMPSPACE 条件)。

11

活动在其生存期内读取的行数超过了阈值允许的行数(SQLROWSREAD 条件)。

12

在当前服务子类中执行活动时,活动所读取的行数超过了阈值允许的行数(SQLROWSREADINSC 条件)。

13

活动在其生存期内使用的 CPU 时间超过了阈值允许的 CPU 时间(CPUTIME 条件)。

14

在当前服务子类中执行活动时,活动所使用的 CPU 时间超过了阈值允许的 CPU 时间(CPUTIMEINSC 条件)。

15

为服务子类请求的临时系统空间总量超过阈值所允许的总量(AGGSQLTEMPSPACE 条件)。

16

工作单元使用的时间已超出阈值(UOWTOTALTIME 条件)所允许的时间。

17

活动所引用的表的数据标记位于阈值(DATATAGINSC IN 条件)中所指定的数据标记列表中。

18

活动所引用的表的数据标记位于阈值(DATATAGINSC NOT IN 条件)中所指定的数据标记列表中。

19

活动的最大总运行时间已超过阈值所允许的时间(ACTIVITYTOTALRUNTIME 条件)。

20

活动的最大总运行时间已超过阈值所允许的时间(ACTIVITYTOTALRUNTIMEINALLSC 条件)。

用户响应

执行下列其中一个或多个操作:

  • 通过查看 SYSCAT.THRESHOLDS 目录视图中的给定阈值,查看已超过的阈值的详细信息。
  • 增大阈值限制。
  • 修改活动或请求,以便它减少对阈值正在监视的资源的使用。
  • 如果活动违反了并行阈值,请在系统上执行的活动数较少的另一个时间来执行此活动。

sqlcode:-4712

sqlstate:5U026

SQL4713N 已超过数据库或服务超类的最大服务类数。 无法创建服务类 服务类名称

说明

无法创建服务类 服务类名称,因为它超过了可以对数据库或服务超类创建的最大服务类数目。 如果服务类 服务类名称 是服务超类,那么它超过了可以对每个数据库创建的用户定义服务超类的限制(即,64)。 如果服务类 服务类名称 是服务子类,那么它超过了可以对每个服务超类创建的用户定义服务子类的限制(即,61)。

用户响应

请检查现有服务类,并查看是否可以合并或删除现有的任何服务类以便为新的服务类腾出空间。

sqlcode:-4713

sqlstate:5U027

SQL4714N 请求无法完成,因为服务类 service-class-name 已禁用。

说明

无法完成请求,因为正在将它映射至或者重新映射至一个已被禁用的服务类。 服务类 服务类名称 当前已被禁用,因此无法接受新的请求或者完成已经在执行的请求。

用户响应

请与数据库管理员联系以确定该服务类何时不再处于禁用状态。 到那时再次尝试执行该请求。 数据库管理员可以使用 ALTER SERVICE CLASS 来启用该服务类。

sqlcode:-4714

sqlstate:5U028

SQL4715N 无法在缺省服务类下创建服务子类。

说明

不允许在缺省用户类、缺省系统类或缺省维护类下创建服务子类。

用户响应

请在用户定义的服务超类下创建服务子类。

sqlcode:-4715

sqlstate:5U029

SQL4716N 与外部工作负载管理器通信时发生错误。

说明

数据库管理器无法与外部工作负载管理器进行通信。 以下可能是导致该错误的原因:

  • 外部工作负载管理器未安装
  • 外部工作负载管理器已安装,但未处于活动状态

用户响应

如果实例在 AIX 上运行,请确保 AIX WLM 已安装并处于活动状态。 如果实例在 Linux 上运行,请确保 Linux WLM 已安装并且处于活动状态。

sqlcode:-4716

sqlstate:5U030

SQL4717N 未删除服务类 service-class-name 。 原因码:原因码

说明

无法删除服务类的情况有多种,例如,如果服务类仍处于启用状态,或者服务类仍由另一工作负载管理器对象引用。 当服务类因为其中一种情况而无法删除时,将返回此消息。

标记 原因码 指示哪种情况导致无法删除服务类:

1

服务超类具有用户定义的服务子类。

2

服务类具有工作负载关联。

3

服务类具有工作操作集关联。

4

服务类具有工作操作关联。

5

服务类在一个或多个分区上具有由其相关联的工作负载管理器许可控制进行管理的连接、工作负载实例、活动或资源。

6

服务类具有相关联的阈值。

7

服务类未被禁用。

8

服务类是缺省服务类。

9

服务类是阈值 REMAP ACTIVITY 操作的目标。

用户响应

要删除服务类,请先根据原因码来处理导致服务类无法删除的情况:

1

删除服务超类下的所有用户定义的服务子类。

2

通过参考 SYSCAT.WORKLOADS 目录视图来确定哪些工作负载与该服务类相关联,然后移除相关联的工作负载。

3

通过参考 SYSCAT.WORKACTIONSETS 目录视图来确定哪些工作操作集与该服务类相关联,然后移除相关联的工作操作集。

4

通过参考 SYSCAT.WORKACTIONS 目录视图来确定哪些工作操作与该服务类相关联,然后移除相关联的工作操作。

5

通过下列其中一种方式对原因码 5 作出响应:

  • 等待当前使用该服务类的所有连接、工作负载实例和活动完成,并等待释放由工作负载管理器许可控制进行管理的所有资源。
  • 通过发出 FORCE APPLICATION 命令来强制从该服务类断开与其相关联的连接。
  • 取消当前在该服务类中执行的所有活动。
6

通过参考 SYSCAT.THRESHOLDS 目录视图来确定哪些阈值与该服务类相关联,然后移除相关联的阈值。

7

通过发出 ALTER SERVICE CLASS 语句来禁用服务类。

8

请指定用户定义的服务类。

9

通过参考 SYSCAT.THRESHOLDS 目录视图来确定哪些阈值指定了以该服务类为目标的 REMAP ACTIVITY 操作。 然后,对于每个相关联的阈值,将其删除或者将阈值 REMAP ACTIVITY 操作变更为以同一服务超类下的另一个服务子类为目标。

sqlcode:-4717

sqlstate:5U031

SQL4718N 缺省工作负载管理对象 wlm-object-name 未按指定进行变更,关联或配置。 原因码:原因码

说明

存在缺省工作负载管理对象(例如缺省用户工作负载和缺省管理工作负载),它们由系统而不是由用户进行定义。 不支持对缺省工作负载管理对象执行某些可以对用户定义的工作负载管理对象执行的操作。

尝试对缺省工作负载管理对象执行不受支持的操作时,将返回此消息。

原因码指示未执行该操作的原因:

1

尝试了禁用缺省系统服务类、缺省维护服务类或缺省用户服务类。

2

尝试了使缺省系统服务类或缺省维护服务类与工作负载、工作操作集或阈值相关联。 或者尝试了使缺省用户服务类与工作操作集相关联。

3

尝试了变更缺省服务子类的不能变更的属性。

4

尝试了使缺省服务子类与工作负载相关联。

5

尝试了对 SYSDEFAULTSYSTEMCLASS 服务类或其子类配置 CPU 份额或 CPU 限制。

6

尝试了在 SYSDEFAULTUSERWCS 工作类集中添加或删除工作类。

7

尝试了在 SYSDEFAULTUSERWAS 工作操作集中添加或删除工作操作。

8

尝试了使缺省用户工作类集与用户定义的工作操作集相关联。

9

尝试了变更 SYSDEFAULTUSERWCS 工作类集中工作类的不能变更的属性。

10

尝试了变更 SYSDEFAULTUSERWAS 工作操作集中工作操作的不能变更的属性。

11

尝试对 SYSDEFAULTSYSTEMCLASS 或 SYSDEFAULTMAINTENANCE 服务类或其子类配置资源份额、最小资源份额百分比或许可队列顺序。

用户响应

根据原因码执行下列其中一项操作:

1、2 和 4

请指定用户定义的服务类。

3

代之以对父超类改变此属性。

5

对用户服务类或者维护服务类配置 CPU 份额和/或 CPU 限制。

6 和 8

指定用户定义的工作类集。

7

指定用户定义的工作操作集。

9

指定用户定义工作类集中的用户定义工作类。

10

指定用户定义工作操作集中的用户定义工作操作。

11

请指定用户定义的服务类。

sqlcode:-4718

sqlstate:5U032

SQL4719N 防止执行工作操作 work-action_name 应用于此活动,因此未运行此活动。

说明

PREVENT EXECUTION 工作操作将阻止活动运行。

用户响应

请移除或禁用 PREVENT EXECUTION 工作操作。

sqlcode:-4719

sqlstate:5U033

SQL4720N 指定的工作操作类型对于工作操作 work-action-name无效。 原因码:原因码

说明

由于下列其中一种原因,指定的工作操作类型无效:

1

对同一工作操作集的工作类指定了重复的工作操作类型。

2

工作操作类型是 MAP ACTIVITY,但该工作操作集与数据库或工作负载相关联。 映射工作操作仅对适用于服务类的工作操作集有效。

3

工作操作类型是阈值,但该工作操作集与服务类相关联。 阈值工作操作仅对应用于数据库或工作负载的工作操作集有效。

4

工作操作类型是 COLLECT AGGREGATE ACTIVITY DATA,但该工作操作集与数据库相关联。 COLLECT AGGREGATE ACTIVITY DATA 工作操作仅对应用于服务类或工作负载的工作操作集有效。

用户响应

请指定不同类型的工作操作。

sqlcode:-4720

sqlstate:5U034

SQL4721N 无法创建或改变阈值 threshold-name (原因码 = reason-code)。

说明

因为阈值违反了下列原因码所指示的限制,所以不能创建或改变该阈值:

1

服务超类不存在。

2

服务子类不存在。

3

工作负载定义不存在。

4

指定的定义域和强制实施作用域不支持此类阈值。

5

对阈值的条件指定的值超出范围。

6

对排队阈值将 maxValue 设置为 0 时,queueSize 必须为 0 且操作必须为 STOP EXECUTION。

7

无法通过 ALTER THRESHOLD 语句对阈值谓词进行更改。

8

在 REMAP ACTIVITY 操作中指定的服务类在此阈值的服务超类中不存在。

9

在 REMAP ACTIVITY 操作中指定的服务子类不能与此阈值的服务超类相同。

10

REMAP ACTIVITY 操作不支持所指定的阈值。

11

所指定的阈值不支持缺省服务超类下的缺省服务类。

12

工作操作阈值不支持 REMAP ACTIVITY 操作。

13

指定的阈值不支持 FORCE APPLICATION 操作。

14

在程序包高速缓存或者目录中找不到具有所指定可执行文件标识的部分。

用户响应

与原因码对应的操作是:

1

创建服务超类,然后再次发出 CREATE THRESHOLD 或 ALTER THRESHOLD 语句。

2

创建服务子类,然后再次发出 CREATE THRESHOLD 或 ALTER THRESHOLD 语句。

3

创建工作负载,然后再次发出 CREATE THRESHOLD 或 ALTER THRESHOLD 语句。

4

发出 CREATE THRESHOLD 或 ALTER THRESHOLD 语句并指定有效的定义域和强制实施作用域。

5

发出 CREATE THRESHOLD 或 ALTER THRESHOLD 语句并指定有效范围中的最大值。

6

发出 CREATE THRESHOLD 或 ALTER THRESHOLD 语句并指定 queueSize = 0 和操作 STOP EXECUTION。

7

删除阈值并创建一个带有所需谓词的新阈值。 或者,您可以保留现有阈值并创建一个带有所需谓词的新阈值。

8

在此阈值的服务超类下创建服务子类,然后再次发出 CREATE THRESHOLD 或 ALTER THRESHOLD 语句。

9

对用于指定此阈值的服务超类下的不同服务子类的 REMAP ACTIVITY 操作发出 CREATE THRESHOLD 或 ALTER THRESHOLD 语句。

10

发出 CREATE THRESHOLD 或 ALTER THRESHOLD 语句并指定另一项“超出阈值”操作。

11

发出 CREATE THRESHOLD 或 ALTER THRESHOLD 语句并对阈值域指定用户定义的服务子类。

12

发出 CREATE WORK ACTION SET 或 ALTER WORK ACTION SET 语句,并对阈值工作操作指定另一个超出阈值操作。

13

发出 CREATE THRESHOLD 或 ALTER THRESHOLD 语句时,请指定另一项在超出该阈值的最大值时所执行的操作。

14

如果您正在使用静态 SQL,请确保您已经指定了正确的可执行文件标识。 对于动态 SQL,使用 PREPARE 语句将预编译或者可执行版本的此语句添加至程序包高速缓存。

sqlcode:-4721

sqlstate:5U037

SQL4722N 未创建阈值,因为具有匹配定义的阈值 object-name 已存在。

说明

CREATE THRESHOLD 语句已尝试创建一个与现有阈值定义相匹配的新阈值。 如果两个阈值定义使用相同的阈值谓词并应用于同一个域,那么它们相匹配。

未创建新的阈值。

用户响应

除非现有名称为 名称 的阈值不是适当的阈值,否则不需要执行任何操作。 在此情况下,必须删除该阈值,然后才能创建所需阈值。

sqlcode:-4722

sqlstate:5U038

SQL4723N 已经为连接属性 connection-attribute 定义了值 connection-attribute-value ,或者检测到重复项。

说明

要添加的连接属性值对于该连接属性而言已经存在,或者在提供的列表中该值重复。

用户响应

请移除该值,然后重新提交此语句。

sqlcode:-4723

sqlstate:5U039

SQL4724N 无法删除值 connection-attribute-value ,因为没有为连接属性 connection-attribute定义该值。

说明

指定连接属性值不是对该连接属性定义的,因此无法删除。

用户响应

请指定一个对该连接属性定义的连接属性值,然后重新提交此语句。

sqlcode:-4724

sqlstate:5U040

SQL4725N 活动已取消。

说明

已使用 WLM_CANCEL_ACTIVITY 过程来取消活动。

用户响应

继续执行应用程序。

sqlcode:-4725

sqlstate:57014

SQL4726N 无法完成请求,因为在执行请求时删除了标识为 service-class-id 的服务类。

说明

无法完成请求,因为正在将它重新映射至一个已删除的服务类。 但是,在执行此请求时删除了此服务类。 将来的请求可能不会受影响,因为不会将它们重新映射至此服务类。

用户响应

重新发出该请求。 如果该请求仍然失败,那么可能是由于特定原因而阻止执行此请求。 请与数据库管理员联系以确定原因。

sqlcode:-4726

sqlstate:5U045

SQL4727N 无法将活动映射到指定的服务子类,因为例程 WLM_REMAP_ACTIVITY 的至少一个输入参数无效。 原因码:原因码

说明

WLM_REMAP_ACTIVITY 例程失败,因为有一个或多个输入参数无效。 原因码如下所示:

1

只能将活动重新映射至此活动的服务超类下的服务子类。 在 service_superclass_name 参数中指定该活动的服务超类名,或者将它设置为 NULL。 将 service_superclass_name 参数设置为 NULL 时,会将输入参数缺省设置为此活动的当前服务超类名称。

2

必须在 service_subclass_name 参数中指定该活动的服务超类下的有效服务子类。

3

将 log_evmon_record 参数的值指定为 Y,以便在分区上重新映射活动时将事件监视器记录写入 THRESHOLD VIOLATIONS 事件监视器。 将 log_evmon_record 参数的值指定为 N,以便在分区上重新映射活动时阻止将事件监视器记录写入 THRESHOLD VIOLATION 事件监视器。

用户响应

请确保已满足原因码中的条件,然后重新调用 WLM_REMAP_ACTIVITY 例程。

sqlcode:-4727

sqlstate:5U046

SQL4728W 已将优先级设置分配给高于缺省系统服务类 SYSDEFAULTSYSTEMCLASS 的优先级设置的服务类,这可能会对性能产生负面影响。

说明

为了确保系统工作可以优先于用户工作,缺省系统服务类 SYSDEFAULTSYSTEMCLASS 的优先级设置始终应高于为所有其他服务类设置的优先级。 如果无法对缺省系统服务类指定更高的优先级设置,那么可能会对性能造成负面影响,因为系统类型活动在缺省系统服务类中运行。

用户响应

提高缺省系统服务类的优先级设置,或者降低比缺省系统服务类具有更高优先级设置的其他服务类的优先级设置。

sqlcode:+4728

sqlstate:01HN1

SQL4901N 由于先前的错误,预编译器服务需要重新初始化。

说明

在上一次函数调用时出错。 在重新初始化“预编译器服务”之前,将无法处理请求的函数调用。

此函数不能完成。

用户响应

调用 sqlainit 函数来重新初始化“预编译器服务”

SQL4902N 函数 function 的参数 n 中至少有一个字符无效。

说明

指定函数的指定参数中至少包含一个无效的字符。

此函数不能完成。

用户响应

更正指定的参数,并再次调用该函数。

SQL4903N 函数 name 的参数 n 的长度无效。

说明

指定函数中的指定参数的长度无效。

此函数不能完成。

用户响应

更正指定的参数,并再次调用该函数。

sqlcode:-4903

sqlstate:42611

SQL4904N 指向函数 function 的参数 n 的指针无效。

说明

指定函数中的指定参数的指针无效。

此函数不能完成。

用户响应

更正指定的参数,并再次调用该函数。

SQL4905N 函数 function 的参数 n 的值不在有效范围内。

说明

指定函数中的指定参数值不在该参数的有效范围内。 如果指定的参数是结构,那么它可能包含在有效范围内的值,但在同时考虑时无效。 某些结构包含一些标题,用来指定已分配的大小和该大小的使用比率。 如果分配的大小小于已使用的大小,那么无效。

此函数不能完成。

用户响应

更正指定的参数,并再次调用该函数。

SQL4906N 指定的表空间名称列表是前滚操作的不完整集合。

说明

由于下列原因之一,表空间名的列表是不完整的:
  • 对于时间点表空间恢复,必须指定表空间列表。
  • 对于时间点表空间恢复,必须指定表空间名的自包含列表。 列表中的表空间必须包含表空间中包括的每个表的所有对象。
  • 不允许对系统目录进行时间点表空间恢复。
  • 允许对系统目录进行日志末尾表空间恢复,但它只能是列表中的表空间名。
  • 如果没有任何表空间处于“正在前滚”状态,那么要用于前滚的 CANCEL 选项必须具有表空间列表。

用户响应

检查表空间列表,并对完整的表空间列表重新提交前滚命令。

SQL4907W 数据库 名称 已恢复,但包含在前滚操作中的表空间列表中的一个或多个表处于 "设置完整性暂挂" 状态。

说明

时间点表空间恢复涉及的一个或多个表对用于恢复的表空间列表外部的表具有引用约束,或者在用于恢复的表空间列表外部具有从属具体化查询表或从属登台表。 所有这些表都处于设置完整性暂挂状态。 否则,就已经成功地完成了前滚操作。

用户响应

检查表空间中的表的状态,并在必要时执行适当的操作。

SQL4908N 为数据库 名称 上的前滚恢复指定的表空间列表在成员或节点 node-list上无效。

说明

请检查是否存在下列一种或多种情况:

  • 表空间列表包含重复的名称。
  • 如果启动新的表空间前滚,那么在列表中指定的要前滚的一个或多个表空间在所指定成员或节点上并非处于前滚暂挂状态。
  • 如果继续已经在执行的表空间前滚,那么列表中指定的要前滚的一个或多个表空间在所指定成员或节点上并非处于正在前滚状态或已脱机。

用户响应

确保在该列表中没有重复的表空间名。

在所指定的成员或节点上使用 MON_GET_TABLESPACE 表函数来弄清楚哪些表空间未准备好进行前滚。 使用前滚命令的 QUERY STATUS 选项来确定表空间前滚的状态。 如果前滚状态为“TBS 暂挂”,那么可以启动新的表空间前滚。 如果前滚状态为“TBS 正在工作”,那么表示表空间前滚已在进行中。

如果启动新的表空间前滚,那么通过复原表空间来使它们处于前滚暂挂状态。

如果继续表空间前滚,并且所涉及的一个或多个表空间已复原,并处于前滚暂挂状态,那么必须取消正在进行的表空间前滚。 在使用 CANCEL 选项和同一表空间列表的情况下再次提交前滚命令。 当正在进行的前滚被取消时,这些表空间将被置于复原暂挂状态。 复原表空间并再次提交原来的前滚命令。

如果继续表空间前滚,并且所涉及的一个或多个表空间已脱机,那么有三个选项:

  • 重新使该表空间联机并再次提交原来的前滚命令。
  • 重新提交前滚命令,但从表空间列表中移除脱机的表空间。 会将这些表空间置于复原暂挂状态。
  • 在使用 CANCEL 选项和同一表空间列表的情况下再次提交前滚命令。 当正在进行的前滚被取消时,这些表空间将被置于复原暂挂状态。

SQL4910N 溢出日志路径 log-path 无效。

说明

在 ROLLFORWARD 命令上指定的溢出日志路径无效。 溢出日志路径必须是文件系统中的目录。 实例所有者标识必须能够访问此目录。

用户响应

使用有效的溢出日志路径重新提交该命令。

SQL4911N 主变量数据类型无效。

说明

主机变量的数据类型无效。

此函数不能完成。

用户响应

更正主机变量的数据类型,并再次调用该函数。

SQL4912N 主变量数据长度超出范围。

说明

主机变量的长度无效。

此函数不能完成。

用户响应

更正主机变量的长度,并再次调用该函数。

SQL4913N 已使用主变量令牌标识。

说明

已经使用了主机变量的标记标识。 该标记标识在模块中必须是唯一的。

此函数不能完成。

用户响应

更正主机变量的标记标识,并再次调用该函数。

SQL4914N 主变量令牌标识无效。

说明

主机变量的标记标识无效。

此函数不能完成。

用户响应

更正主机变量的标记标识,并再次调用该函数。

SQL4915N 已调用 "sqlainit" 函数。

说明

已初始化“预编译器服务”。

用户响应

不需要执行任何操作。 继续处理。

SQL4916N 尚未调用 "sqlainit" 函数。

说明

必须初始化“预编译器服务”之后才能处理所请求的函数调用。

此函数不能完成。

用户响应

发出 sqlainit 函数调用以初始化“预编译器服务”。

选项数组中的SQL4917N 元素 编号 无效。

说明

选项数组中包含的元素的 选项.类型选项.值 无效。 消息中的元素号是选项数组的选项部分的第 n 个元素。

此函数不能完成。

用户响应

更正存储在选项数组中的值。 再次调用该函数。

SQL4918N 函数 "sqlainit" 的 term_option 参数无效。

说明

term_option 参数无效。

此函数不能完成。

用户响应

请更正 term_option 参数并再次调用该函数。

SQL4919N 函数 "sqlacmpl" 的 task_array 参数太小。

说明

传送至 sqlacmpl 函数调用上的“预编译器服务”的任务数组结构太短。

此函数未成功完成。

用户响应

增大由预编译器分配的预编译器任务数组结构的大小。 重新编译应用程序。

SQL4920N 函数 "sqlacmpl" 的 token_id_array 参数太小。

说明

传送至 sqlacmpl() 函数调用上的“预编译器服务”的标记标识数组结构太小。

此函数未成功完成。

用户响应

增大由预编译器分配的预编译器标记标识数组结构的大小。 重新编译应用程序。

SQL4921N 由于所有数据库分区上当前正在进行的先前时间点恢复,前滚命令失败。

说明

数据库当前正在所有数据库分区上执行时间点恢复过程。 在完成或者取消了先前的时间点恢复之后,才能发出后续的前滚命令。

用户响应

使用 STOP 选项重新发出 ROLLFORWARD DATABASE 命令,但是不要指定 ON 数据库分区子句。

SQL4930N 绑定,重新绑定,改变或预编译选项或选项值 option-name 无效。

说明

选项名 不是有效的绑定、重新绑定、更改或预编译选项,或者对此选项指定的值无效。 无法继续执行绑定、重新绑定、更改或预编译操作。

用户响应

请更正绑定、重新绑定、更改或预编译选项或选项值,然后再次尝试运行该命令或语句。

sqlcode:-4930

sqlstate:56095

SQL4940N 不允许或需要 子句 子句。

说明

所指示的子句在它出现在 SQL 语句中的上下文中不被允许,或是该子句在该语句中所需的。

子查询、INSERT 语句或 CREATE VIEW 语句不能带有 INTO、ORDER BY 或 FOR UPDATE 子句。 嵌入式 SELECT 语句不能带有 ORDER BY 或 FOR UPDATE 子句。 除非是在子查询中,否则嵌入式 SELECT 语句不能包含集合运算符。 游标声明中所使用的 SELECT 语句不能有 INTO 子句。

嵌入的 SELECT 语句必须具有 INTO 子句。

此函数不能完成。

用户响应

移除或添加该子句以更正语句。

SQL4941N SQL 语句为空或空。

说明

跟在 EXEC SQL 后面的文本为空白或是空的。

此函数不能完成。

用户响应

确保在单词 EXEC SQL 后提供的 SQL 语句有效。

SQL4942N 该语句将不兼容的数据类型选择到主变量 name中。

说明

嵌入式 SELECT 语句选择进入主机变量 名称,但该变量的数据类型与对应的 SELECT 列表元素不兼容。 如果该列的数据类型是日期和时间,那么该变量的数据类型必须是具有适当最小长度的字符。 对于用户定义的数据类型,用来定义主机变量的关联内置数据类型可能与该语句的变换组中定义的 FROM SQL 变换函数的结果类型不兼容。

此函数不能完成。

用户响应

验证表定义是否是最新的,且主机变量是否具有正确的数据类型。

SQL4943W INTO 子句中的主变量数与 SELECT 子句中的项数不同。

说明

在 INTO 子句和 SELECT 子句中指定的主机变量数必须相等。

已执行了该功能。

用户响应

更正应用程序,以便指定与 SELECT 列表表达式的数目相同的主机变量数。

SQL4944N 更新或插入值为 NULL ,但对象列不能包含 NULL 值。

说明

发生了下列情况之一:
  • 更新或插入值是 NULL,但是在表定义中,对象列声明为 NOT NULL。 因此,不能将空值插入该列,并且该列中的值不能被更新值设置为 NULL。
  • INSERT 语句的列名列表略去了表定义中声明为 NOT NULL 的列。
  • INSERT 语句的视图略去了在基本表定义中声明为 NOT NULL 的列。

此函数不能完成。

用户响应

检查对象表的定义以确定该表的哪些列具有 NOT NULL 属性,并更正 SQL 语句。

SQL4945N 参数标记的使用无效。

说明

只能在动态 SQL 语句中使用参数标记。

此函数不能完成。

用户响应

对静态 SQL 语句使用主机变量而非参数标记。

SQL4946N 未定义游标或语句名称 name

说明

未定义语句中指定的游标或语句名 名称

此函数不能完成。

用户响应

检查应用程序是否已完成,及游标或语句名中可能存在的拼写错误。

SQL4947W 迂到并忽略了 INCLUDE SQLDA 语句。

说明

数据库管理器交付的 FORTRAN 预编译器不支持 INCLUDE SQLDA 语句。

该语句被忽略。 继续处理。

用户响应

不需要执行任何操作。 要防止出现此消息,应从程序中移除 INCLUDE SQLDA 语句。

SQL4950N 此环境中不支持包含用户定义的 SQLDA 的复合 SQL 语句。

说明

包含用户定义的 SQLDA 的复合 SQL 语句在 16 位应用程序中不受支持。

用户响应

将该语句移至复合 SQL 块外部,或将该语句替换为使用主机变量而非 SQLDA 的语句。

SQL4951N 函数 name 的 sqlda_id 参数无效。

说明

应用程序中的指定函数的 sqlda_id 参数无效。 sqlda_id 参数不能为 null。

此函数不能完成。

用户响应

请更正应用程序中的 sqlda_id 参数。

SQL4952N 函数 name 的 sqlvar_index 参数无效。

说明

应用程序中的指定函数的 sqlvar_index 参数无效。 sqlvar_index 可能大于 SQLDA 中 sqlvar 元素的数目。

此函数不能完成。

用户响应

请更正应用程序中的 sqlvar_index 参数。

SQL4953N 函数 name 的 call_type 参数无效。

说明

应用程序中的指定函数的 call_type 参数无效。

此函数不能完成。

用户响应

请更正应用程序中的 call_type 参数。

SQL4954N 函数 name 的 section_number 参数无效。

说明

应用程序中的指定函数的 section_number 参数无效。 注意,对于下列 SQL 语句,函数 sqlacall() 的 section_number 参数被用来在语句类型中传送:
  • CONNECT
  • SET CONNECTION
  • RELEASE
  • DISCONNECT

此函数不能完成。

用户响应

请更正应用程序中的 section_number 参数。

SQL4970N 前滚恢复在名为 database-name 的数据库上停止,因为前滚实用程序无法到达以下数据库分区上的指定停止点 (日志结束或时间点): database-partition-list

说明

在下列情况下将返回本消息:

  1. Rollforward 实用程序无法访问一个或多个文件,因为缺少这些文件,或者这些文件具有数据完整性问题。 以下是一些示例:
    • 请求了使所指定的数据库脱离前滚暂挂状态。 但是,前滚实用程序在所指定的数据库分区上的数据库日志目录或溢出日志目录中找不到到达前一前滚操作的停止点所必需的归档日志文件。
    • 在非 DB2 pureScale 环境的多分区数据库环境中:前滚实用程序找不到使数据库分区与目录分区同步所需的归档日志文件。
  2. 这是时间点前滚操作,无法到达日志文件中的指定时间点时间戳记。 这可能表示缺少日志文件,或者时间点晚于产生最后一条日志的时间,并使数据库可用。 在分区数据库环境中,使用带有 QUERY STATUS 选项的 ROLLFORWARD DATABASE 命令来确保前滚处于正常状态。
  3. 这是 DB2 pureScale 数据库前滚操作,此操作重放了从 HADR 主数据库提供给 HADR 备用数据库的部分日志文件。

    例如,如果 HADR 备用数据库处于远程同步复制状态,然后在执行 STOP HADR 或数据库复原命令后执行了此数据库前滚操作,那么可能会发生这种情况。

    日志文件存在,但不完整,且缺少日志记录。 其他日志流可能依赖于这些缺少的日志记录。

如果",..." 显示在数据库分区列表末尾,请参阅管理通知日志以获取完整的数据库分区列表。

前滚恢复已停止。 数据库仍然处于前滚暂挂状态。

用户响应

  1. 通过发出带有 QUERY STATUS 选项的 ROLLFORWARD 命令来确定前滚所处理的最后一个日志文件。 然后,在处理最后一个日志文件之后,通过将任何必需的文件移至适当的位置来确保它们变得可用:
    • 如果指定了数据库日志目录或溢出日志路径,那么检查该目录或路径。
    • 如果已启用日志归档,那么确保必需的文件存在于归档位置。 并且,确保日志归档检索方法起作用:检查管理通知日志是否包含消息 ADM0083I,必要时对检索方法进行更正。

    在验证这两项之后,重新发出 ROLLFORWARD DATABASE 命令。

    如果日志文件存在,但是重新发出 ROLLFORWARD DATABASE 失败(有可能日志文件存在数据完整性问题),或者找不到日志文件,那么复原数据库,然后将数据库前滚到已处理的其中一个日志文件中所引用的更早时间点(使用比最早缺少的文件的时间戳记更早的时间戳记)。

  2. 如果时间点时间戳记正确,并且未丢失日志文件,那么指定的时间点可能实际上晚于对该数据库执行的任何工作。 在这种情况下,请发出带有 STOP 选项的 ROLLFORWARD DATABASE 命令,此命令将在日志文件中的当前位置完成前滚恢复操作。
  3. 如果 HADR 主数据库或一些其他源(例如归档)提供了日志文件的完整副本,请将该副本复制到此数据库的日志路径(并通过创建副本或重命名来保存任何要覆盖的文件)。

    如果日志文件没有可用的完整副本,那么发出带有 STOP 选项的 ROLLFORWARD DATABASE 命令,此命令将在日志文件中的当前位置完成前滚恢复操作。

SQL4971N 节点 节点号 上数据库 名称 上的前滚恢复先前在停止时失败。 必须停止前滚恢复。

说明

通过指定调用程序操作 SQLUM_ROLLFWD 请求继续对指定的数据库进行前滚。 停止时前滚恢复的先前迭代失败了。 如果在数据库级别进行前滚恢复,那么意味着它在日志截断期间失败了。 现在必须通过指定调用程序操作 SQLUM_ROLLFWD_STOP、SQLUM_STOP、SQLUM_ROLLFWD_COMPLETE 或 SQLUM_COMPLETE 停止对此数据库的前滚恢复。

注意:如果正在使用分区数据库服务器,那么节点号指示哪些节点上发生错误。 否则,它无关紧要并应忽略。

用户响应

对调用程序操作 SQLUM_ROLLFWD_STOP、SQLUM_STOP、SQLUM_ROLLFWD_COMPLETE 或 SQLUM_COMPLETE 重新发出 ROLLFORWARD DATABASE 命令。 指定的任何停止时间都将被忽略,因为已经处理了前一停止时间。

SQL4972N 无法将节点 节点号 上的日志扩展数据块 扩展 移至数据库日志路径。

说明

调用 Rollforward 实用程序时使用了 STOP 选项。 作为前滚处理的一部分,必须截断日志数据块 数据块。 数据库日志路径中必须存在此数据块。 当前,该数据块存在于溢出日志路径中。 尝试将数据块从溢出日志路径移到数据库日志路径中。 该尝试失败。 前滚处理已经停止了。

注意:如果正在使用分区数据库服务器,那么节点号指示哪些节点上发生错误。 否则,它无关紧要并应忽略。

用户响应

将数据块从溢出日志路径移到数据库日志路径中,然后重新提交 ROLLFORWARD DATABASE 命令。

SQL4973N 数据库 名称 上的正向恢复无法完成,因为数据库分区 node-list 上的日志信息与目录数据库分区上的相应记录不匹配。

说明

Rollforward 实用程序处理了在每个数据库分区上找到的所有日志文件,但是所指定数据库分区上的停止点与目录数据库分区上的相应记录不匹配。 这可能是由于目录数据库分区或所指定数据库分区上丢失日志文件所导致的,或者,必须将目录数据库分区包括在要前滚的数据库分区的列表中。

ROLLFORWARD DATABASE 处理停止。

用户响应

请执行下列其中一项操作:

  • 检查目录数据库分区是否需要前滚。 如果需要前滚,那么再次提交 ROLLFORWARD DATABASE 命令,并包括目录数据库分区。
  • 使用带有 QUERY STATUS 选项的 ROLLFORWARD DATABASE 命令来确定丢失了哪些日志文件。 当您找到日志文件时,将它们放到日志路径或溢出日志路径中,并继续执行正向恢复。
  • 如果找不到丢失的日志文件,那么复原所有数据库分区上的数据库,然后使用比最早丢失的日志文件的停止时间更早的停止时间来进行时间点恢复。

SQL4974W ROLLFORWARD DATABASE QUERY STATUS 命令迂到了 sqlcode sqlcode

说明

ROLLFORWARD DATABASE QUERY STATUS 命令遇到了错误,sqlcode 为 sqlcode。 在某些节点上,查询可能因为各种原因而不成功。 最严重错误由 sqlcode 指示。 仅对成功的节点返回前滚状态。

用户响应

消息引用中查找 sqlcode sqlcode,或联机以确定发生故障的节点上的问题。 执行必需的更正操作,然后在这些节点上继续正向恢复。

SQL4975W 前滚操作已成功取消。 必须在成员或节点 节点列表 上复原数据库或者所选表空间。

说明

前滚操作在尚未成功完成之前即被取消,而数据库或所选表空间处于不一致状态。 在所列示的成员或节点上,数据库或所选表空间处于复原暂挂状态。

如果",..." 显示在成员或节点列表末尾,请参阅管理通知日志以获取完整的成员或节点列表。

注:只有在 DB2 pureScale 环境和分区数据库环境中,成员或节点号才会提供有用的信息。 否则,应忽略此消息。

用户响应

复原所列示的成员或节点上的数据库或所选表空间。 可以通过 MON_GET_TABLESPACE 表函数在所指定的成员或节点上标识处于复原暂挂状态的表空间。 在非 DB2 pureScale 的环境中,还可以使用 db2dart 实用程序。

SQL4976N 无法在非目录节点上提交此命令。

说明

只有在目录节点上才接受 ROLLFORWARD DATABASE 命令。

如果 BACKUP DATABASE 命令中指定了 ON DBPARTITIONNUM 子句,那么仅接受在目录节点上执行该命令。

用户响应

在目录节点上提交该命令。

SQL4977N 已删除的表导出目录 目录 无效。

说明

在 ROLLFORWARD 命令上指定的导出目录路径无效。 导出目录路径必须是文件系统中的目录。 实例所有者标识必须能够访问此目录。

用户响应

使用有效的导出目录路径重新提交该命令。

SQL4978N 无法访问已删除的表。

说明

不能访问已删除的表。 这可能是因为表处于不可用状态造成的,而表不可用是因为进行 LOAD 操作时没有复制或因为 NOT LOGGED INITIALLY 操作造成的。

用户响应

不能使用 DROPPED TABLE RECOVERY 选项来恢复该表。

SQL4979W 无法导出已删除的表数据。

说明

该命令无法导出已删除的表的数据,但正在尝试恢复已删除的表。 当在 ROLLFORWARD 命令上指定的已删除的表标识无效时,或者并非所有日志都可供前滚使用时,就会发生此情况。 当使用 ROLLFORWARD 进行删除的表恢复期间发生错误时,将生成此警告 ... AND STOP 命令。

用户响应

在确保提供的已删除的表标识有效,且所有日志可供前滚使用之后,重新提交该命令。

SQL4980N 数据库上的恢复 name 在数据库分区 dbpart-num 和日志流 log-stream-ID上迂到了损坏的日志文件 log-file

说明

在数据库恢复过程中遇到破坏的日志文件。

可能是“日志”页上发生了校验和错误。 校验和错误指示磁盘上“日志”页中的信息与 DB2 期望的信息不匹配。 不能信任此日志页的内容。

用户响应

可能的操作包括:

  • 运行硬件诊断以检查系统是否遇到任何硬件问题。
  • 如果此日志文件有另一副本可用,那么将文件放到数据库日志目录或溢出日志路径中并重新发出该命令。
  • 要在无日志文件副本可用的非分区数据库环境中执行数据库前滚操作,请发出前滚停止命令。 这将使数据库恢复至遇到该破坏的日志文件之前的某一点。 值得注意的是,这一点之后的日志数据将不可用。
  • 要在无日志文件副本可用的分区数据库环境中执行数据库前滚操作,请复原每个数据库分区并发出至遇到该破坏的日志文件之前的某个停止时间的时间点前滚。 值得注意的是,这一点之后的日志数据库将不可用。
  • 如果问题仍然存在,保存一份此破坏文件以供 IBM 支持机构分析。 IBM 支持机构将能够确定哪一页已破坏。

SQL4981W 数据已从已删除的表中导出,但包含一个或多个数据分区的表空间未包含在前滚列表中。 这些数据分区的数据将不会存在于导出目录中。

说明

该命令无法导出已删除的表的一个或多个数据分区的数据。 如果 ROLLFORWARD 命令上未包括定义分区表的每个表空间,那么可能会发生这种情况。 如果您正在通过几个步骤从分区表中恢复数据,以便限制 Export 目录中文件的大小,那么可以故意这样做。 请参阅管理通知日志,以获取未导出数据的数据分区的完整列表。

用户响应

在确保包括了包含管理通知中列示的数据分区的表空间之后,重新提交该命令。 如果只恢复先前已跳过的数据分区,那么指定另一个导出文件路径以避免覆盖现有导出文件。

SQL4990N SQL 语句中支持最多 number 个文字。 每个文字的长度最多为 字节。

说明

COBOL 预编译器仅支持 SQL 语句中最多 数值 个文字。 每个文字的长度最多为 字节。 文字表示不是主机变量的任何输入元素(即字符串常量、定界标识和非定界标识)。

无法处理该语句。

用户响应

减少 SQL 语句中出现的文字数。 确保每个文字的长度都不大于 字节。

SQL4994N 由于用户中断请求,预编译已结束。

说明

预编译由于中断而终止。 用户可能按了中断键序列。

处理终止。 未创建任何程序包。

用户响应

如果有必要,请重新提交预编译。

SQL4997N 授权标识无效。

说明

先前已经指定了应用程序的授权标识,但在定义它时使用了 128 个以上的字符或使用了对授权标识无效的字符。

授权标识不能是 PUBLIC(public),并且它不能以 SYS(sys)、IBM(ibm)或 SQL(sql)开头。 而且,它不能包含下划线字符或数据库管理器基本字符集之外的任何字符。

不能处理该函数。

用户响应

使用有效的授权标识再次尝试运行该应用程序。

SQL4998C 应用程序状态为错误; 数据库连接已丢失。

说明

与数据库的连接已丢失。

不能处理该函数。

用户响应

重新连接至数据库。

SQL4999N 发生了 "预编译器服务" 或 "运行时服务" 错误。

说明

发生了数据库管理器错误,它阻止“预编译器服务”或“运行时服务”处理函数调用。

不能处理“预编译器服务”或“运行时服务”函数调用。

用户响应

记录消息号 (SQLCODE) 和 SQLCA 中的所有错误信息(如果可能)。

如果跟踪处于活动状态,那么在操作系统命令提示符处调用“独立跟踪设施”。
  • 环境:使用预编译器服务 API 的外部预编译器
  • 需要的信息:
    • 问题描述
    • SQLCODE
    • SQLCA 内容(如果有可能)
    • 跟踪文件(如果有可能)。