
功能级别和相关级别在 Db2 12
Db2 12 中的许多新功能都是在激活功能级别时启用的,而大多数新的 SQL 语法和行为都是在应用程序以等同的应用程序兼容性 (APPLCOMPAT) 级别运行时可用的。 在激活功能级别之前, Db2 子系统或所有 Db2 数据共享成员必须达到足够的代码级别 ,并且 Db2 目录必须更新到所需的 Db2 目录级别。
每个功能级别对应一个APAR,可实现之前在服务流中提供的一系列增强功能。 特定的功能级别可能启用一项或多项增强功能。
在大多数情况下,您无需单独激活当前激活的功能级别之上的每个较低功能级别,即可激活更高功能级别。 然而,激活更高功能级别的同时,也会激活低于当前激活级别所有功能级别所引入的所有功能。
功能级别标识符
在大多数情况下,代码级别、目录级别、功能级别和应用兼容级别在命令和消息输出中以九位字符串的形式指定,分别对应于 Db2 版本、发行版本和修改值。 然而,文档中对功能级别的描述通常只涉及数值的变化部分。
格式为 VvvRrMmmm ,其中 vv 是版本号, r 是发行号, mmm 是修改级别。 例如, V12R1M510 代表功能级别510。 如需了解 Db2 12 中所有可用功能级别的列表,请参阅 Db2 12个功能级别。
中的代码级别 Db2 12
Db2 子系统或数据共享成员的代码级别表明,已应用了相应的APAR和任何必要的新功能代码、缺陷修复以及其他服务项目。 由于新功能级别与其他维护项目在同一服务流中提供,因此随着您对子系统或组件进行常规维护,代码级别可能会增加。 如果您主动进行维护,那么在准备采用新的 Db2 功能时,代码级别可能会高于目录级别或功能级别。
如果您删除支持代码级别或与代码级别相关的维护项目, Db2 将恢复为较低的代码级别。 但是,在将目录定制为更高目录级别或激活更高功能级别后,您不能以更低的代码级别启动 Db2 。 因此,在您确定 Db2 可以在相应的代码级别继续运行后,才可以在更高的目录级别定制目录或激活功能级别。
在定制目录级别或激活功能级别之前,请提前对代码级别进行维护。 通过这样做,您可以验证 Db2 是否能够继续在所需的代码级别运行,同时您仍然有机会识别并删除任何有问题的维护项目。
在数据共享组中,每个成员可能处于不同的代码级别。 然而,功能级别始终在组级别激活。 也就是说,当您尝试激活某个功能级别时,如果任何数据共享成员未达到最低要求的代码级别,则激活命令将失败。 信息输出显示当前和所需的代码级别。 DSNU757I 信息输出显示当前和所需的代码级别。
每个代码级别与它所启用的功能级别使用相同的标识符进行标识。 格式为 VvvRrMmmm ,其中 vv 是版本号, r 是发行号, mmm 是修改级别。
在显示组命令输出中,DB2 LVL列以六位字符串的形式表示每个数据共享成员或子系统的代码级别,其中包含 Db2 版本、发行版本和修改值。 格式为 vvrmmm ,其中 vv 是版本, r 是发行版, mm 是修改级别。
Db2 12 目录级别
数据共享组或子系统的目录级别表明,已在 Db2 目录上运行了特定的 CATMAINT 实用程序 UPDATE LEVEL 作业,且数据共享组或 Db2 子系统已准备好激活某些功能级别。
每个功能级别都需要特定的目录级别。 然而,并非每个功能级别都需要新的目录级别。 如果您尝试激活某个功能级别时,目录未达到最低要求,则激活命令会失败。 信息输出显示当前和所需的目录级别。 您还可以使用DISPLAY GROUP命令来识别当前的 Db2 目录级别。
- V12R1M509
- V12R1M507
- V12R1M505
- V12R1M503
- V12R1M502
- V12R1M500
有关 Db2 12 目录级别变化的列表,请参见 Db2 12 中的目录变化。
当您提交CATMAINT实用程序作业时,通过定制和运行DSNTIJTC示例作业,目录级别将更新。 您可以使用一个指定目标功能级别的CATMAINT作业。 如果目标功能级别需要多次目录级别更新,CATMAINT作业将按顺序处理每次更新。 如果序列中的后续更新失败,则不会回滚之前成功的更新,目录级别将保持在达到的最高级别。 如果出现这种情况,您可以更正故障原因,然后重新提交相同的CATMAINT工作。
虽然数据共享组中的不同数据共享成员可能处于不同的代码级别,但数据共享组只有一个目录级别。
在CATMAINT工作任何部分完成后,不要试图以较低的代码级别启动 Db2 以获得更高的功能级别。 只有在您确认 Db2 能够以必要的代码级别继续运行后,才能运行CATMAINT作业。 允许目录变更的代码包含在执行CATMAINT任务的代码级别中。 
每个目录级别与需要它的最低功能级别使用相同的标识符进行标识。 格式为 VvvRrMmmm ,其中 vv 是版本号, r 是发行号, mmm 是修改级别。 例如, 功能级别510 要求目录级别为 V12R1M509。
例外情况是功能级别为100,需要目录级别为 V12R1M500。 然而,目录级别 V12R1M500 是当您按照安装步骤 16:定制 Db2 目录:DSNTIJTC 中的描述定制目录以迁移到 Db2 12 时产生的结果。
要查看目录级别何时发生更改,您可以查看 SYSIBM.SYSLEVELUPDATES 目录表或查看 DSNG014I 控制台上的消息。
功能级别 Db2 12
功能级别启用了一组新的 Db2 功能和增强功能,这些功能以前是以单一的连续 Db2 代码流的形式提供的。 它包含支持新功能、缺陷修复和预防性服务项目的代码。 在使用功能级别的新功能之前,必须激活该功能级别或更高一级的功能级别。 激活一个功能级别意味着激活所有较低功能级别引入的功能。
在数据共享组中,功能级别在组级别激活。 也就是说,当您尝试激活某个功能级别时,如果任何数据共享成员未达到最低要求的代码级别,则激活命令将失败。 信息输出显示当前和所需的代码级别。 DSNU757I 信息输出显示当前和所需的代码级别。
要查看功能级别何时发生改变,您可以查看 SYSIBM.SYSLEVELUPDATES 目录表或查看 DSNG014I 控制台上的信息。
在应用程序使用函数级别引入的新SQL功能之前,应用程序必须运行在同等或更高的应用程序兼容级别。
中的应用兼容性级别 Db2 12
您可以通过应用程序兼容性(APPLCOMPAT) 级别来控制应用程序、例程或触发器等对象对函数级别中引入的SQL功能的采用和使用。 通常,应用程序、例程或触发器不能使用新的或更改的 SQL 功能,除非有效应用程序兼容性级别与引入更改的功能级别相同或更高。 应用程序兼容性级别适用于大多数SQL语句,包括数据定义语句(如CREATE和ALTER语句)和数据控制语句(如GRANT和REVOKE语句)。
在应用程序兼容性级别绑定软件包时,必须激活相应的功能级别或更高级别。 但是,如果您启用较低的功能级别(或*功能级别),应用程序仍可在较高的应用程序兼容级别下继续运行。 为防止继续使用较高功能级别中引入的 SQL 功能,还必须修改应用程序并将有效应用程序兼容性级别更改为较低级别。 
对于使用数据服务器客户端或驱动程序访问 Db2 for z/OS® 的应用程序,可能需要额外的程序准备步骤来提高应用程序兼容性级别。 有关详细信息,请参阅为数据服务器客户端和驱动程序设置应用程序兼容性级别。
Db2 12 的应用兼容性级别与相应功能级别使用相同的标识符。 格式为 VvvRrMmmm ,其中 vv 是版本号, r 是发行号, mmm 是修改级别。
Db2 12 在大多数情况下支持以下应用程序兼容性级别:

V12R1M5nn

与已识别的 Db2 12 功能级别的行为兼容。 例如,
V12R1M510指定与最高可用 Db2 12 功能级别兼容。 必须激活同等或更高的功能级别。
有关每个应用程序兼容性级别中可用的新功能的信息,请参阅 V12R1Mnnn 应用程序兼容性级别。
提示:
对于使用数据服务器客户端或驱动程序访问 Db2 for z/OS 的应用程序,可能需要额外的程序准备步骤来提高应用程序兼容性级别。 有关详细信息,请参阅为数据服务器客户端和驱动程序设置应用程序兼容性级别。

V12R1
与 Db2 12 功能 500 级的行为兼容。 该值与指定 V12R1M500的结果相同。
- V11R1
- 与 Db2 11 新功能模式的行为兼容。 迁移到 Db2 12 后,此值与指定
V12R1M100具有相同的结果。 欲了解更多信息,请访问 V11R1 应用程序兼容性级别 - V10R1
- 与 DB2® 10 新功能模式的行为兼容。 更多信息,请参阅 V10R1 应用程序兼容性级别。
有关应用程序兼容性级别的更多信息,请参阅 Db2 12中的应用程序兼容性(APPLCOMPAT)级别。
星级(*)功能等级
有时,在启用更高功能级别后,您可能需要启用较低的功能级别,即 “星级”功能级别(* )。 在某些方面, Db2 12 中的功能级别 100* 与之前版本的 CM * 和 ENFM* 迁移模式类似。 任何低于曾经激活过的最高功能级别的功能级别都是*功能级别。
DISPLAY GROUP和ACTIVATE命令的输出通过功能级别标识符和星号来识别*功能级别,因此得名。 例如,假设您之前激活了功能级别501,现在又激活了功能级别500。V12R1M500*在消息输出中, Db2 数据共享组或子系统处于功能级别500*(你可以说, 功能级别500星
)。
激活 * 功能级别后, Db2 将继续容许在较高功能级别创建或绑定的对象、包和结构。 一些新功能行为会立即恢复为之前的行为,特别是那些不影响SQL应用程序的行为,例如新函数的语法以及 Db2 命令和 Db2 实用程序的行为。 Db2 也继续容忍任何子系统参数设置,这些设置启用更高功能级别的功能,但 可能会在*功能级别恢复为不同设置的行为。 Db2 不过,SQL 应用程序通常不会在 * 函数级别禁用新函数语法和行为,除非采取额外措施,如重新绑定使用这些语法和行为的包。
在应用程序和SQL上下文中,如果有效的应用程序兼容性级别保持在较高级别,则较高函数级别的SQL语法和行为仍可在*函数级别使用。 包也可以在更高级别上执行、回滚和自动绑定。 然而,只有当APPLCOMPAT绑定选项与激活的*功能级别或更低级别相当时,此类包的明确绑定才能成功。 类似规则适用于本机SQL程序、编译的SQL标量函数和高级触发器的应用程序兼容性级别。
结果是,如果SQL应用程序使用更高功能级别的功能与激活*功能级别的原因无关,则可以继续使用这些功能。 若要停止在较高功能级别使用所有 SQL 功能,还必须在较低级别设置所有有效的应用程序兼容级别。
