REBIND TRIGGER PACKAGE 命令(数据链路层)

更改开始DSN子命令REBIND TRIGGER PACKAGE用于为基本触发器重新绑定一个包。 您可以通过查询 SYSIBM.SYSTRIGGERS 目录表来识别基本触发器。 SQLPL列中的空白值表示基本触发器。 对于高级触发器,请使用REBIND PACKAGE命令。更改结束

您可以使用此子命令更改 Db2 在创建软件包时使用的默认绑定选项的有限子集。 在创建新索引或使用RUNSTATS实用程序后,您也可以重新绑定触发器包,以重新优化其SQL语句。 此外,如果某个触发器包因索引或依赖的其他对象被删除而失效,您可以重新绑定它。

更改开始如果重新绑定成功,则触发器包将被标记为有效。 当发出REBIND TRIGGER PACKAGE(重新绑定触发器包)(*)命令时,受影响的触发器包仅限于授权给触发器包发行者重新绑定的基本触发器包。更改结束

扳机套件不能远程复位。 在REBIND TRIGGER PACKAGE子命令中指定包名称时,允许使用位置名称。 但是,地点名称不能指代偏远地区。

环境 REBIND TRIGGER PACKAGE

您可以通过 DB2I 使用 REBIND TRIGGER PACKAGE,或者在前台或后台运行的 DSN 会话中输入 REBIND TRIGGER PACKAGE 子命令。

数据共享范围 :集团

授权 REBIND TRIGGER PACKAGE

为了创建一个不产生错误信息的包,包所有者必须有权限执行包中为REBIND TRIGGER PACKAGE嵌入的所有SQL语句

要执行此子命令,您必须使用包含以下权限或授权之一的进程特权集:
  • 扳机套件的所有权
  • 触发器套件的绑定权限
  • 扳机套件的所有者提供的绑定特权
  • 对集合或所有集合的 PACKADM 权限
  • 系统 DBADM 权限
  • SYSCTRL 权限
  • SYSADM 权限
当触发器包绑定时,当前授权ID的权限将在检查触发器操作中的绑定语句权限时使用。 在“重新绑定触发器包”上,您需要以下权限之一:
  • 扳机套件的所有权
  • 触发器套件的绑定权限
  • 扳机套件的所有者提供的绑定特权
  • 对集合或所有集合的 PACKADM 权限
  • 系统 DBADM 权限
  • SYSCTRL 权限
  • SYSADM 权限

当指定EXPLAIN(ONLY)选项时,您必须拥有EXPLAIN权限。

REBIND TRIGGER PACKAGE的语法

阅读语法图跳过可视化语法图REBIND TRIGGER PACKAGE(地点名称.收藏-ID*.包裹编号*)选项块CURRENTDATA(NOYES)DESCSTAT(NOYES)EXPLAIN(YESNOONLY)FLAG(IWEC)IMMEDWRITE(NOYES)ISOLATION(RRRSCSURNC)RELEASE(COMMITDEALLOCATE)SWITCH(PREVIOUSORIGINAL)CONCURRENTACCESSRESOLUTION(USECURRENTLYCOMMITTEDWAITFOROUTCOME)BUSTIMESENSITIVE(YESNO)SYSTIMESENSITIVE(YESNO)ARCHIVESENSITIVE(YESNO)APPLCOMPAT(功能级别V11R1V10R1)

选项块

阅读语法图跳过可视化语法图 PLANMGMT(BASICEXTENDEDOFF) APREUSE(NONEERRORWARN)APREUSESOURCE(CURRENTPREVIOUSORIGINAL)APCOMPARE(NONEWARNERROR)APRETAINDUP(YESNO)

选项说明

触发器数据包
确定要重新绑定哪个或哪些触发器包。 更改开始触发器套件必须与基本触发器相关联。更改结束

以下选项用于确定包的位置、集合和包名称。 您可以识别地点和收藏。 对于REBIND TRIGGER PACKAGE,您必须指定触发器包名称。

地点名称
识别当前本地位置。 不允许远程重新绑定触发器包。 location-name 是 数据库管理系统(DBMS)的位置,程序包将在此处重新绑定,程序包的描述也位于此处。

默认值为本地数据库管理系统。

collection-id 或 *
标识已包含要重新绑定的触发器包的架构名称。 不存在默认值。

对于“重新绑定触发器”,您可以使用星号(*)来重新绑定所有具有绑定权限的集合中指定 包ID 的所有本地包。

package- id 或 *
识别要重新绑定的触发器包的名称,如SYSPACKAGE目录表的NAME列中所示。 不存在默认值。

您可以使用模式匹配字符(*)来重新绑定您拥有绑定权限的 集合ID 中的所有本地触发器。

关于语法图中显示的选项说明,请参阅 “软件包、计划和服务绑定和重新绑定选项 ”主题。

使用说明

对触发器套件的限制

触发器包可以明确地重新绑定,但不能使用BIND PACKAGE子命令明确地绑定。

触发器包不能使用FREE PACKAGE子命令或DROP PACKAGE语句明确释放。 使用DROP TRIGGER语句删除触发器包。

触发器包无法复制,只能在本地重新设置。 不允许远程重新绑定触发器包。

重新绑定多个触发器包

如果您重新绑定多个触发器包, Db2 会在绑定下一个包之前提交每个成功的绑定。

对触发器名称的限制
虽然触发器名称中通常允许使用双字节字符集字符,但包含双字节字符集字符的触发器名称不能用于“重新绑定触发器包”操作。
数据共享成员的信息追踪
当在 Db2 数据共享成员中发出具有组范围的命令时,该命令也会在所有其他活动成员中运行。 IFICID 090 跟踪记录显示,除了发出原始命令的成员的跟踪记录外, 016.TLPKN5F 相关 ID 的 SYSOPR 授权 ID 也发出了相同的命令。 请参阅 Db2 数据共享中的命令范围

输出

REBIND TRIGGER PACKAGE更新SYSPACKAGE目录表中的COLLID和NAME列。

示例

输入以下命令,在 ADMF001 软件包集合中重新绑定触发器软件包 TRIG1 :
REBIND TRIGGER PACKAGE (ADMF001.TRIG1);
此命令的输出结果与以下输出结果类似:
DSNT254I - DSNTBRB2 REBIND OPTIONS FOR
           PACKAGE = STLEC1.ADMF001.TRIG1.()
           ACTION
           OWNER         ADMF001
           QUALIFIER     ADMF001
           VALIDATE      BIND
           EXPLAIN       NO
           ISOLATION     CS
           RELEASE       COMMIT
           COPY
DSNT255I - DSNTBRB2 REBIND OPTIONS FOR
           PACKAGE = STLEC1.ADMF001.TRIG1.()
           SQLERROR      NOPACKAGE
           CURRENTDATA   YES
           DEGREE        1
           DYNAMICRULES  BIND
           NODEFER       PREPARE
           REOPT         NONE
           KEEPDYNAMIC   NO
           DBPROTOCOL    DRDA
           QUERYOPT      1
           PATH
"SYSIBM","SYSFUN","SYSPROC","SYSADM","ADMF001"
DSNT232I - SUCCESSFUL REBIND FOR
           PACKAGE = STLEC1.ADMF001.TRIG1.()