COPY 绑定选项

更改开始“复制”选项可复制现有软件包或服务,并为其命名。 更改结束

命令选项 选项价值 搭配
COPY
  • (collection-id.package-id)
  • collection-id.package-id COPYVER 版本 ID
  • collection-id.package-id COPYVER 版本 ID 复制选项
  • collection-id.package-id 复制选项
  • 更改开始(collection-id.service-name) 更改结束
  • 更改开始 collection-id.service-name COPYVER 版本 ID 更改结束
  • 更改开始 collection-id.service-name COPYVER 版本 ID 复制选项 更改结束
  • 更改开始 collection-id.service-name 复制选项 更改结束

更改开始 复制软件包或服务会重新计算副本中的访问路径。更改结束

更改开始要创建远程副本,此选项将从本地服务器上的软件包中复制SQL语句。更改结束 因此,您必须在本地服务器上拥有COPY权限或同等权限。

选项说明 COPY

COPY 集合 ID
更改开始包含要复制的软件包或服务的集合的名称,如目录表 SYSPACKAGE 或 DSNSERVICE 的列 COLLID 中所列。更改结束

更改开始collection-id 可以是无限制的或有限制的标识符。 collection-id的分隔符是双引号(“)。如果 collection-id 被分隔, Db2 不会将值转换为大写。 分隔的 collection-id 可以包含字母、数字或除句点 (.) 或空格以外的特殊字符。更改结束

COPY 软件包 ID
要复制的软件包名称,如目录表 SYSPACKAGE 的 NAME 列中所示。

更改开始package-id 可以是无定界或定界的标识符。 package-id的分隔符是双引号(“)。如果 package-id 被分隔, Db2 不会将值转换为大写。 分隔的包裹ID 可以包含字母、数字或除句点(.)和空格以外的特殊字符。更改结束

更改开始COPY 服务名称更改结束
更改开始

要复制的服务名称,如目录表 DSNSERVICE 的 NAME 列中所示。

service-name 可以是无限或定界的标识符。 服务名称的分隔符是双引号(“)。如果服务名称被分隔, Db2 不会将值转换为大写。

更改结束
COPYVER 版本 ID
更改开始可选规格,用于确定要复制的软件包或服务的版本。 对于包, version-id 的默认值为空字符串。 对于服务, version-id 的默认值为默认服务版本。更改结束

更改开始version-id 是一个未限定的标识符。 Db2 不会将数值转换为大写或以任何其他方式更改。更改结束

更改开始复制选项更改结束
更改开始更改开始指定新软件包或服务使用的绑定选项。更改结束
选项(组合)
更改开始在BIND PACKAGE COPY子命令中指定的选项值用于包复制。 未指定的绑定选项的值(ENABLE、DISABLE、OWNER和QUALIFIER的值除外)是SYSPACKAGE目录表中描述要复制的源包的绑定选项的值。更改结束

更改开始在BIND SERVICE COPY子命令中指定的选项值用于服务副本。 未指定的绑定选项的值(ENABLE、DISABLE、OWNER和QUALIFIER的值除外)是DSNSERVICE和SYSPACKAGE目录表中描述要复制的源服务的行中的绑定选项值。更改结束

更改开始 对于绑定服务,服务器必须为 或更高版本。 Db2 12 for z/OS®更改结束

OPTIONS(COMMAND)
更改开始在绑定包副本或绑定服务副本子命令中指定的选项值用于包或服务副本。更改结束 未指定的选装件价值按以下方式确定:
  • 对于本地副本,将使用 Db2 定义的绑定包或绑定服务选项默认值。
  • 更改开始对于远程复制,服务器上使用服务器定义的BIND PACKAGE或BIND SERVICE选项默认值。更改结束 对于绑定包,当复制到下级服务器或非 服务器时,必须使用选项(命令)。 z/OS Db2 非顶级服务器是指任何非 Db2 12 for z/OS 的服务器。 更改开始1For 绑定服务,服务器必须为 或更高版本。 Db2 12 for z/OS更改结束
更改结束

限制条件 COPY

  • collection-id.package-id 必须在本地服务器上识别一个包。
  • 更改开始 必须确定本地服务器上的服务。 collection-id.service-name 必须确定本地服务器上的服务。更改结束
  • 更改开始您不能复制到同一集合中的软件包或服务。 如果您在本地服务器上制作副本, 请使用collection-id。 在“复制”选项中不得指定“套餐”或“服务”选项中使用的系列。更改结束
  • 更改开始当本地日期或时间格式在本地站点生效时,如果您使用COPY选项在远程站点绑定本地包的副本,则 Db2 将使用ISO格式输出远程包中的值,除非SQL语句明确指定了不同的格式。 远程包中的输入值可以采用标准格式之一,也可以采用服务器本地日期/时间输出所识别的格式。更改结束
  • 更改开始 以下选项与绑定服务的复制选项互斥:名称、版本、SQLDDNAME、SQLENCODING、日期、时间、DEC、DECDEL、STRDEL。更改结束

默认值 COPY

进程 缺省值
绑定计划 不适用
绑定程序包 NONE
更改开始绑定服务更改结束 更改开始NONE更改结束
重新绑定计划 不适用
重新绑定程序包 不适用

更改开始COPY 没有默认值。 如果您不使用“复制”,则必须使用“会员”进行“绑定套餐”或使用“姓名”进行“绑定服务”。 您不能同时使用这两个选项。更改结束

将数据包复制到远程服务器

要将 Db2 12 for z/OS 中的软件包复制并绑定到不支持 Db2 12 中所有新BIND选项的其他服务器,请使用BIND PACKAGE COPY中的OPTIONS(COMMAND)选项。 您在BIND PACKAGE子命令中未明确指定的任何选项都将设置为服务器的默认值。 当您绑定和复制软件包到 Db2 12 for z/OS 以外的服务器时,使用此选项可以防止绑定错误。

远程SQL的绑定包

要在本机 SQL 过程中执行 CONNECT SQL 语句或包含远程服务器中三部分名称的 SQL 语句,需要在目标服务器上安装一个包。 使用 BIND PACKAGE COPY 命令指定以下内容:
  • 在CONNECT/implicit DRDA SQL中将目标位置作为目标站点
  • 集合ID作为本机SQL过程的架构
  • 包ID作为本机SQL过程的名称
  • COPYVER作为本地SQL程序的版本
例如,使用BIND PACKAGE命令将一个版本复制到远程服务器,请执行以下操作:
CREATE PROCEDURE TEST.MYPROC LANGUAGE SQL VERSION ABC ...
BEGIN
...
CONNECT TO SAN_JOSE
...
END
BIND PACKAGE(SAN_JOSE.TEST) COPY(TEST.MYPROC) COPYVER(ABC) ACTION(ADD)

绑定包与当前包集合和当前包路径

要使用SQL语句SET CURRENT PACKAGESET和SET CURRENT PACKAGE PATH,必须使用BIND PACKAGE COPY命令指定以下内容:
  • 将集合ID作为SQL语句的目标
  • 源集合ID作为本机SQL过程的架构
  • 包ID作为本机SQL过程的名称
  • COPYVER作为本地SQL程序的版本

例如,将SQL语句SET CURRENT PACKAGESET与BIND PACKAGE命令结合使用,请执行以下操作:

CREATE PROCEDURE TEST.MYPROC LANGUAGE SQL VERSION ABC ...
BEGIN
...
SET CURRENT PACKAGESET = 'COLL2'
...
END
BIND PACKAGE(COLL2) COPY(TEST.MYPROC) COPYVER(ABC)
									ACTION(ADD) QUALIFIER(XYZ)

如果由于本机 SQL 程序发生变化而需要重新生成,请使用 BIND COPY ACTION(REPLACE) 命令创建新副本。

目录记录 COPY

请参阅SYSPACKAGE目录表中的COPY列。

更改开始

复制服务到远程服务器

更改开始 当将服务绑定并复制到远程服务器时,两台服务器都必须为 或更高版本。 Db2 12 for z/OS 更改结束

更改结束

更改开始以下示例将版本 ID 为 Ver2 的现有 REST 服务 payroll.getEmployeeSalary 复制到位置名称为 PRODSYS 的远程服务器。 更改结束

更改开始新服务与原始服务具有相同的集合标识。 限定符选项也用于新服务,用于确定在PRODSYS系统上创建的服务中包含的表、视图、索引和别名的非限定名称的隐式限定符。 “描述”选项用于描述新复制的服务。更改结束

    BIND SERVICE(PRODSYS."payroll") COPY("payroll"."getEmployeeSalary") COPYVER(Ver2) QUALIFIER(PRODQUAL) DESCRIPTION('This is the PRODSYS copy of getEmployeeSalary')