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的值。
| 绑定选项 | 安装面板字段 绑定新包(绑定NV子系统参数) | 运行BIND PACKAGE需要授权 |
|---|---|---|
| 使用默认所有者或主要授权ID添加 | BINDADD | 要向集合中添加新软件包或现有软件包的新版本,主要授权ID或角色必须具有以下权限之一:
|
| 使用默认所有者或主要授权ID添加 | BIND | 要向集合中添加新软件包或现有软件包的新版本,主要授权ID或角色必须具有以下权限之一:
|
| 添加,指定除主要授权ID1 之外的另一个所有者 | BINDADD | 如果进程的任何授权ID或角色具有SYSADM权限、SYSCTRL权限或系统DBADM权限,则当子系统参数SEPARATE_SECURITY设置为NO时,OWNER 授权ID 可以为任何值。 如果授权ID中包含所有者授予的BINDAGENT权限,则 授权ID 可以将授权者指定为所有者。 否则,OWNER 授权ID 必须是活页夹的主授权ID或次授权ID之一。 如果您指定了所有者 授权ID , Db2 会首先检查所有者,然后检查活页夹是否具有必要的活页夹权限。 如果绑定者没有 SYSADM、SYSCTRL 或系统 DBADM 权限,则所有者必须具有以下权限之一,才能将新软件包或现有软件包的新版本添加到集合中:
|
| 添加,指定除主要授权ID1 之外的另一个所有者 | BIND | 如果进程的任何授权ID或角色具有SYSADM权限、SYSCTRL权限或系统DBADM权限,则当子系统参数SEPARATE_SECURITY设置为NO时,OWNER 授权ID 可以为任何值。 如果授权ID中包含所有者授予的BINDAGENT权限,则 授权ID 可以将授权者指定为所有者。 否则,OWNER 授权ID 必须是活页夹的主授权ID或次授权ID之一。 如果您指定了所有者 授权ID , Db2 会首先检查所有者,然后检查活页夹是否具有必要的活页夹权限。 如果绑定者没有 SYSADM、SYSCTRL 或系统 DBADM 权限,则所有者必须具有以下权限之一,才能将新软件包或现有软件包的新版本添加到集合中:
|
| 使用默认所有者或主要授权ID替换 | BINDADD或BIND | 主要授权ID或角色必须具有以下一项:
|
| 替换,指定除主要授权ID1 之外的另一个所有者 | BINDADD或BIND | 如果进程的任何授权ID或角色具有SYSADM权限、SYSCTRL权限或系统DBADM权限,则当子系统参数SEPARATE_SECURITY设置为NO时,OWNER 授权ID 可以为任何值。 如果授权ID中包含所有者授予的BINDAGENT权限,则 授权ID 可以将授权者指定为所有者。 否则,OWNER 授权ID 必须是活页夹的主授权ID或次授权ID之一。 如果您指定了所有者 授权ID , Db2 会首先检查所有者,然后检查活页夹是否具有必要的活页夹权限。 如果绑定者没有SYSADM或SYSCTRL或系统DBADM权限,则OWNER的授权ID或角色必须具有以下权限之一:
|
| COPY | BINDADD或BIND | 在复制的包裹上,绑定者或所有者的主要或次要授权ID或角色必须具有以下一项:
|
注:
|
||
语法
描述 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)
