COPY 绑定选项
“复制”选项可复制现有软件包或服务,并为其命名。 
| 命令选项 | 选项价值 | 搭配 |
|---|---|---|
| COPY |
|
复制软件包或服务会重新计算副本中的访问路径。
要创建远程副本,此选项将从本地服务器上的软件包中复制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的绑定包
- 在CONNECT/implicit DRDA SQL中将目标位置作为目标站点
- 集合ID作为本机SQL过程的架构
- 包ID作为本机SQL过程的名称
- COPYVER作为本地SQL程序的版本
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)绑定包与当前包集合和当前包路径
- 将集合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')