BIND PACKAGE 子命令(数据链路层)

DSN子命令BIND PACKAGE用于创建应用程序包。 Db2 在目录表中记录软件包的描述,并将准备好的软件包保存在目录中。 更改开始BIND PACKAGE(绑定包)还会删除已淘汰的包副本。更改结束

环境 BIND PACKAGE

您可以从 DB2I 或TSO下的DSN会话中使用BIND PACKAGE,该会话可在前台或后台运行。

数据共享范围 :集团

授权 BIND PACKAGE

包所有者必须拥有执行包中所有语句的权限,以便BIND PACKAGE能够构建包而不产生错误消息。 SYSADM权限和数据访问权限包含此授权。

对于 VALIDATE(BIND), Db2 在绑定时验证授权,但 LOCK TABLE 语句以及某些 CREATE、ALTER 和 DROP 语句除外。 对于这些SQL语句, Db2 会在运行时验证授权。

对于 VALIDATE(RUN), Db2 会在绑定时验证授权,但如果授权检查失败, Db2 会在运行时重新检查。

更改开始添加新软件包或现有软件包的新版本所需的授权取决于子系统参数BINDNV的值。 缺省值是 BINDADD。更改结束

包所有者必须是一个角色,在可信环境中执行绑定包,并拥有角色所有权。 如果在具有角色-对象所有者的可信环境中执行绑定,则包的所有者将是角色。 如果指定了 OWNER,则假定它是一个角色。 如果没有特别说明,则由订约人担任所有者。

要指定选项 SQLERROR(CHECK),绑定器必须具有 BIND、BINDAGENT 或 EXPLAIN 权限。

要指定选项EXPLAIN(ONLY),绑定者必须拥有EXPLAIN权限。

下表总结了运行BIND PACKAGE所需的授权,具体取决于您指定的绑定选项,以及ADD选项的安装面板字段BIND NEW PACKAGE的值。

表 1. 绑定包选项所需的特权汇总
绑定选项 安装面板字段 绑定新包(绑定NV子系统参数) 运行BIND PACKAGE需要授权
使用默认所有者或主要授权ID添加 BINDADD 要向集合中添加新软件包或现有软件包的新版本,主要授权ID或角色必须具有以下权限之一:
  • BINDADD系统特权以及CREATE IN特权或PACKADM权限,适用于单个或所有收藏
  • SYSADM、SYSCTRL或系统DBADM权限
使用默认所有者或主要授权ID添加 BIND 要向集合中添加新软件包或现有软件包的新版本,主要授权ID或角色必须具有以下权限之一:
  • BINDADD系统特权以及CREATE IN特权或PACKADM权限,适用于单个或所有收藏
  • SYSADM、SYSCTRL或系统DBADM权限
  • 对集合或所有集合的 PACKADM 权限
  • 绑定包特权(只能添加现有包的新版本)
添加,指定除主要授权ID1 之外的另一个所有者 BINDADD

如果进程的任何授权ID或角色具有SYSADM权限、SYSCTRL权限或系统DBADM权限,则当子系统参数SEPARATE_SECURITY设置为NO时,OWNER 授权ID 可以为任何值。 如果授权ID中包含所有者授予的BINDAGENT权限,则 授权ID 可以将授权者指定为所有者。 否则,OWNER 授权ID 必须是活页夹的主授权ID或次授权ID之一。

如果您指定了所有者 授权IDDb2 会首先检查所有者,然后检查活页夹是否具有必要的活页夹权限。

如果绑定者没有 SYSADM、SYSCTRL 或系统 DBADM 权限,则所有者必须具有以下权限之一,才能将新软件包或现有软件包的新版本添加到集合中:

  • BINDADD系统特权以及CREATE IN特权或PACKADM权限,适用于单个或所有收藏
  • SYSADM、SYSCTRL或系统DBADM权限
添加,指定除主要授权ID1 之外的另一个所有者 BIND

如果进程的任何授权ID或角色具有SYSADM权限、SYSCTRL权限或系统DBADM权限,则当子系统参数SEPARATE_SECURITY设置为NO时,OWNER 授权ID 可以为任何值。 如果授权ID中包含所有者授予的BINDAGENT权限,则 授权ID 可以将授权者指定为所有者。 否则,OWNER 授权ID 必须是活页夹的主授权ID或次授权ID之一。

如果您指定了所有者 授权IDDb2 会首先检查所有者,然后检查活页夹是否具有必要的活页夹权限。

如果绑定者没有 SYSADM、SYSCTRL 或系统 DBADM 权限,则所有者必须具有以下权限之一,才能将新软件包或现有软件包的新版本添加到集合中:

  • BINDADD系统特权以及CREATE IN特权或PACKADM权限,适用于单个或所有收藏
  • SYSADM、SYSCTRL或系统DBADM权限
  • 对集合或所有集合的 PACKADM 权限
  • 绑定包特权(只能添加现有包的新版本)
使用默认所有者或主要授权ID替换 BINDADD或BIND 主要授权ID或角色必须具有以下一项:
  • 套餐所有权
  • 捆绑包的绑定特权。 如果包不存在,请参阅“使用默认所有者或主要授权ID添加”所需的授权
  • 对集合或所有集合的 PACKADM 权限
  • SYSADM、SYSCTRL或系统DBADM权限
替换,指定除主要授权ID1 之外的另一个所有者 BINDADD或BIND

如果进程的任何授权ID或角色具有SYSADM权限、SYSCTRL权限或系统DBADM权限,则当子系统参数SEPARATE_SECURITY设置为NO时,OWNER 授权ID 可以为任何值。 如果授权ID中包含所有者授予的BINDAGENT权限,则 授权ID 可以将授权者指定为所有者。 否则,OWNER 授权ID 必须是活页夹的主授权ID或次授权ID之一。

如果您指定了所有者 授权IDDb2 会首先检查所有者,然后检查活页夹是否具有必要的活页夹权限。

如果绑定者没有SYSADM或SYSCTRL或系统DBADM权限,则OWNER的授权ID或角色必须具有以下权限之一:

  • 捆绑包的绑定特权。 如果包不存在,则所需授权与指定非主要授权ID的所有者时的ADD授权相同。
  • 包裹当前所有者拥有的绑定权限。
  • 对集合或所有集合的 PACKADM 权限
  • SYSADM、SYSCTRL或系统DBADM权限
COPY BINDADD或BIND 在复制的包裹上,绑定者或所有者的主要或次要授权ID或角色必须具有以下一项:
  • 套餐所有权
  • 套餐的复制权限
  • 包裹所有者提供的绑定特权
  • 对集合或所有集合的 PACKADM 权限
  • SYSADM、SYSCTRL或系统DBADM权限
注:
  1. 如果所有者与装订者均不具备必要的装订权限,且 IFCID 140 跟踪处于活动状态,则系统会记录授权失败的详细信息。

语法

阅读语法图跳过可视化语法图BIND PACKAGE(地点名称. 收藏-ID)OWNER(授权ID) QUALIFIER( 限定词) 启用块成员块DEFER(PREPARE)DEFER(INHERITFROMPLAN)NODEFER(PREPARE)ACTION(替换)REPLVER( 版本号)(添加)CONCENTRATESTMT(NOYES)CURRENTDATA(NOYES)DBPROTOCOL(DRDADRDACBF)DEGREE(1ANY)DESCSTAT(NOYES)加速挡动态规则块编码块EXPLAIN(NOYESONLY)FLAG(IWEC)IMMEDWRITE(INHERITFROMPLANNOYES)ISOLATION(1CSRRRSURNC)KEEPDYNAMIC(NOYES)重新选择块OPTHINT(' 提示-ID' )PATH(,模式名称USER)ROUNDING(CEILINGDOWNFLOORHALFDOWNHALFEVENHALFUPUP)RELEASE(COMMITDEALLOCATEINHERITFROMPLAN)SQLERROR(NOPACKAGECONTINUECHECK)VALIDATE(RUNBIND)EXTENDEDINDICATOR(NOYES)CONCURRENTACCESSRESOLUTION(USECURRENTLYCOMMITTEDWAITFOROUTCOME)APREUSE(NONEERRORWARN)APCOMPARE(NONEWARNERROR)GENERIC(' 字符串')BUSTIMESENSITIVE(YESNO)SYSTIMESENSITIVE(YESNO)ARCHIVESENSITIVE(YESNO)APPLCOMPAT(功能级别V11R1V10R1)
注意:
  • 1 本地套餐的默认值为计划价值。 远程包的默认值为CS。

成员块

阅读语法图跳过可视化语法图MEMBER( dbrm-member-name)LIBRARY( dbrm-library-name)COPY( collection-id.package-id)COPYVER( 版本号)copy-optionsDEPLOY( collection-id.package-id)COPYVER( 版本号)

启用块

阅读语法图跳过可视化语法图ENABLE(*)ENABLEDISABLE(,BATCHDLIBATCHDB2CALLCICSIMSIMSBMPIMSMPPREMOTERRSAF)DLIBATCH(,连接名称)CICS(,APPLID)IMSBMP(,imsid)IMSMPP(,imsid)

加速挡

阅读语法图跳过可视化语法图QUERYACCELERATION(NONEENABLEENABLEWITHFAILBACKELIGIBLEALL)GETACCELARCHIVE(NOYES)ACCELERATIONWAITFORDATA( ' nnnn.m' )ACCELERATOR( ' 加速器名称' )

动态规则块

阅读语法图跳过可视化语法图DYNAMICRULES(RUNBINDDEFINEBINDDEFINERUNINVOKEBINDINVOKERUN)

编码块

阅读语法图跳过可视化语法图ENCODING(ASCIIEBCDICUNICODEccsid)

重新选择块

阅读语法图跳过可视化语法图REOPT(NONE1ALWAYS2ONCEAUTO)
注意:
  • 1 NOREOPT(VARS) 可以被指定为 REOPT(NONE) 的同义词
  • 2 REOPT(VARS) 可以被指定为 REOPT(ALWAYS) 的同义词

描述 BIND PACKAGE

以下选项用于确定要绑定的软件包。 您可以识别位置和收藏编号。 如果您使用“会员”选项,DBRM将提供软件包ID和版本ID。 参见会员绑定选项。 否则,这些ID来自COPY选项。 查看COPY绑定选项

PACKAGE 位置名称

数据库管理系统(DBMS)的位置,包绑定和包描述位于此处。 必须在目录表 SYSIBM.LOCATIONS 中定义地点名称。 如果该表不存在或数据库管理系统中不存在该表,您将收到一条错误消息。 请参阅 《地点》目录表

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

PACKAGE 集合 ID

指定包含要绑定的包的集合。 没有缺省值。

collection-id 可以是无限制的或限制的标识符。 collection-id的分隔符是双引号(“)。如果 collection-id 被分隔, Db2 不会将值转换为大写。

绑定包的其他选项

语法图中的其他选项说明,请参阅软件包、计划和服务中的绑定和重新绑定选项

使用说明 BIND PACKAGE

数据共享成员的信息追踪
当在 Db2 数据共享成员中发出具有组范围的命令时,该命令也会在所有其他活动成员中运行。 IFICID 090 跟踪记录显示,除了发出原始命令的成员的跟踪记录外, 016.TLPKN5F 相关 ID 的 SYSOPR 授权 ID 也发出了相同的命令。 请参阅 Db2 数据共享中的命令范围

例子 BIND PACKAGE

示例:替换软件包的某个版本
以下命令将本地 USIBMSTODB22 上TEST.DSN8BC12软件包的APRIL_VERSION版本替换为该软件包的另一个版本。 新版本(也可能是一样的)在DBRM中 DSN8BC12。 如果 DBRM 不包含版本 ID,则软件包的版本 ID 默认为空字符串。 该软件包只能在TSO BATCH环境中运行,如果连接ID为 CON1 ,则只能在 CICS® 环境中运行。 PRODUCTN 用于限定所有不合法的表、视图、别名和索引名称。
BIND PACKAGE (USIBMSTODB22.TEST) -
  MEMBER (DSN8BC12) -
  ACTION (REPLACE) REPLVER (APRIL_VERSION) -
  QUALIFIER (PRODUCTN) -
  ENABLE (BATCH, CICS) CICS (CON1)
示例:将SPUFI软件包与ISOLATION(UR)绑定
UR隔离几乎不获取任何锁。 它速度快,很少引起争议,但读取的数据不完整。 除非您确定您的应用程序和最终用户能够接受可能出现的不符合逻辑的数据(例如本例中的情况),否则请勿使用ISOLATION(UR)。

假设主管使用SPUFI定期执行SQL语句,以检查零件在装配过程中的状态,并根据检查结果更新表格。 她不需要知道零件的确切状态,允许有少许误差。

主管从名为“组装状态”的生产表中查询零件状态,并在名为“报告”的非生产表中更新信息。 她使用了SPUFI选项AUTOCOMMIT NO,并且习惯在执行其他任务时在屏幕上留下数据。

如果主管执行的SPUFI版本与ISOLATION(UR)绑定,则零件状态查询无需使用UR隔离级别获取锁,而更新则使用CS隔离级别执行。 因此,查询不会无意中锁定生产表,从而干扰生产作业,主管也能获得满足其目的的足够数据。

SPUFI应用程序的绑定如下:

BIND PACKAGE(DSNESPUR) -
  COPY(DSNESPCS.DSNESM68) -
  ACTION(ADD) -
  ISOLATION(UR)
示例:为本地 SQL 过程绑定包
以下命令从当前位置过程 TEST.MYPROC 创建一个名为 CHICAGO.PRODUCTION.MYPROC 的本机SQL过程。
已弃用的功能 :DEPLOY绑定选项已弃用。 为了获得最佳效果,请在每个 Db2 环境中分别发出相同的CREATE或ALTER语句,将编译的SQL函数和本机SQL过程部署到多个环境中。
两个本机SQL过程具有相同的版本ABC。 本机SQL过程 CHICAGO.PRODUCTION.MYPROC 的包。(ABC)的限定词是XYZ。
CREATE PROCEDURE TEST.MYPROC LANGUAGE SQL VERSION ABC ...

BEGIN
...
END

BIND PACKAGE(CHICAGO.PRODUCTION) DEPLOY(TEST.MYPROC) COPYVER(ABC)
                  ACTION(ADD) QUALIFIER(XYZ)

以下命令将使用当前位置的本地SQL程序 TEST.MYPROC 版本ABC替换本地SQL程序 CHICAGO.PRODUCTION.MYPROC 版本ABC。

BIND PACKAGE(CHICAGO.PRODUCTION) DEPLOY(TEST.MYPROC) COPYVER(ABC)
                  ACTION(REPLACE) REPLVER(ABC)