COPY opción de enlace
La opción COPIAR copia un paquete o servicio existente y nombra ese paquete o servicio. 
| Opción de comando | Valores de las opciones | Usado con |
|---|---|---|
| COPIAR |
|
Copiar el paquete o el servicio recalcula las rutas de acceso en la copia.
Para crear una copia remota, esta opción copia las instrucciones SQL de un paquete en su servidor local.
Por lo tanto, debe tener el privilegio COPY o su equivalente en el servidor local.
Descripciones de opciones para COPY
- COPY( id de colección )
El nombre de la colección que contiene el paquete o servicio a copiar, tal como aparece en la columna COLLID de la tabla de catálogo SYSPACKAGE o DSNSERVICE.
collection-id puede ser un identificador delimitado o no delimitado. El delimitador para collection-id son las comillas dobles ("). Si collection-id está delimitado, Db2 no convierte el valor a mayúsculas. Un id de colección delimitado puede incluir letras, dígitos o caracteres especiales que no sean un punto (.) o un espacio en blanco.
- COPY( id-del-paquete )
- El nombre del paquete que se va a copiar, tal como aparece en la columna NAME de la tabla de catálogo SYSPACKAGE.
el identificador de paquete puede ser un identificador delimitado o no delimitado. El delimitador para el identificador de paquete son las comillas dobles ("). Si el identificador de paquete está delimitado, Db2 no convierte el valor a mayúsculas. Un identificador de paquete delimitado puede incluir letras, dígitos o caracteres especiales distintos de un punto (.) o un espacio en blanco.
COPY( nombre-del-servicio )

El nombre del servicio que se va a copiar, tal como aparece en la columna NAME de la tabla de catálogo DSNSERVICE.
nombre-servicio puede ser un identificador ilimitado o delimitado. El delimitador para el nombre del servicio son las comillas dobles ("). Si el nombre del servicio está delimitado, Db2 no convierte el valor a mayúsculas.

- COPYVER( versión-id )
Una especificación opcional que determina la versión del paquete o servicio a copiar. Para los paquetes, la versión predeterminada para version-id es la cadena vacía. Para los servicios, el valor predeterminado para el id. de versión es la versión de servicio predeterminada.
version-id es un identificador no delimitado. Db2 no convierte el valor a mayúsculas ni lo cambia de ninguna otra manera.
opciones de copia

Especifica qué opciones de enlace se utilizan para el nuevo paquete o servicio.
- OPCIONES (COMPUESTO)
Los valores de opción que se especifican en el subcomando BIND PACKAGE COPY se utilizan para la copia del paquete. Los valores de las opciones BIND que no se especifican, excepto los valores de ENABLE, DISABLE, OWNER y QUALIFIER, son los valores de las opciones BIND que se encuentran en la fila de la tabla del catálogo SYSPACKAGE que describe el paquete fuente que se va a copiar.
Los valores de opción especificados en el subcomando BIND SERVICE COPY se utilizan para la copia de servicio. Los valores de las opciones BIND que no se especifican, excepto los valores de ENABLE, DISABLE, OWNER y QUALIFIER, son los valores de las opciones BIND que se encuentran en la fila de la tabla del catálogo DSNSERVICE y SYSPACKAGE que describe el servicio de origen que se va a copiar.
Para el SERVICIO BIND, el servidor debe ser Db2 12 for z/OS® o posterior.
- OPTIONS(COMMAND)
Los valores de opción que se especifican en el subcomando BIND PACKAGE COPY o BIND SERVICE COPY se utilizan para la copia del paquete o del servicio.
Los valores de las opciones que no se especifican se determinan de la siguiente manera:- Para una copia local, se utilizan los valores predeterminados de las opciones BIND PACKAGE o BIND SERVICE definidos por Db2.
Para una copia remota, se utilizan los valores predeterminados de la opción BIND PACKAGE o BIND SERVICE definidos por el servidor.
Para BIND PACKAGE, debe utilizar OPTIONS(COMMAND) al copiar a un servidor de nivel inferior o a un servidor no z/OS Db2 . Un servidor de nivel inferior es cualquier servidor que no sea Db2 12 for z/OS.
1For BIND SERVICE, el servidor debe ser o posterior. Db2 12 for z/OS

Restricciones para COPY
- collection-id.package-id debe identificar un paquete en el servidor local.
debe identificar un servicio en el servidor local collection-id.service-name debe identificar un servicio en el servidor local.
No puede copiar a un paquete o servicio de la misma colección. Si realiza la copia en el servidor local, collection-id. en la opción COPY no debe nombrar la colección utilizada en la opción PACKAGE o SERVICE.
Cuando el formato de fecha u hora LOCAL está en vigor en el sitio local, y se utiliza la opción COPY para vincular una copia de un paquete local en un sitio remoto, Db2 utiliza el formato ISO para los valores de salida en el paquete remoto, a menos que la instrucción SQL especifique explícitamente un formato diferente. Los valores de entrada en el paquete remoto pueden estar en uno de los formatos estándar o en un formato reconocido por la salida de fecha/hora local del servidor.
Las siguientes opciones son mutuamente excluyentes con la opción COPY para el SERVICIO DE ENLACE: NAME, VERSION, SQLDDNAME, SQLENCODING, DATE, TIME, DEC, DECDEL, STRDEL.
Valores predeterminados para COPY
| Proceso | Valor predeterminado: |
|---|---|
| BIND PLAN | N/D |
| BIND PACKAGE | Ninguno |
BIND SERVICE![]() |
Ninguno![]() |
| REBIND PLAN | N/D |
| REBIND PACKAGE | N/D |
COPY no tiene ningún valor predeterminado. Si no utiliza COPY, debe utilizar MEMBER para BIND PACKAGE o NAME para BIND SERVICE. No puede utilizar ambas opciones.
Copiar paquetes a servidores remotos
Para copiar y vincular paquetes de Db2 12 for z/OS a otro servidor que no admita todas las nuevas opciones de BIND en Db2 12, utilice la opción OPTIONS(COMMAND) en BIND PACKAGE COPY. Cualquier opción que no especifique explícitamente en el subcomando BIND PACKAGE se establece en los valores predeterminados del servidor. El uso de esta opción puede evitar errores de enlace al vincular y copiar paquetes a servidores distintos de Db2 12 for z/OS.
ENLACE PAQUETE para SQL remoto
- Ubicación de destino como el sitio de destino en CONNECT/implicit DRDA SQL
- ID de colección como esquema del procedimiento SQL nativo
- ID de paquete como nombre del procedimiento SQL nativo
- COPYVER como la versión del procedimiento SQL nativo
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)ENLACE PAQUETE con ESTABLECER PAQUETES ACTUALES y ESTABLECER RUTA DE PAQUETE ACTUAL
- Identificador de la colección de destino como destino de las sentencias SQL
- ID de la colección de origen como esquema del procedimiento SQL nativo
- ID de paquete como nombre del procedimiento SQL nativo
- COPYVER como la versión del procedimiento SQL nativo
Por ejemplo, para utilizar la instrucción SQL SET CURRENT PACKAGESET con el comando BIND PACKAGE, emita:
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)
Si necesita crear una nueva copia porque el procedimiento SQL nativo ha cambiado y requiere una regeneración, utilice el comando BIND COPY ACTION(REPLACE).
Registros de catálogo para COPY
Consulte la columna COPY en la tabla de catálogo SYSPACKAGE.

Copiar servicios a servidores remotos
Al vincular y copiar un servicio a un servidor remoto, ambos servidores deben ser Db2 12 for z/OS o posterior. 

El siguiente ejemplo copia el servicio REST existente payroll.getEmployeeSalary con un id de versión de Ver2 a un servidor remoto con el nombre de ubicación PRODSYS. 
El nuevo servicio tiene el mismo ID de colección que el servicio original. La opción CALIFICADOR también se especifica para el nuevo servicio, que determina el calificador implícito para los nombres no calificados de tablas, vistas, índices y alias contenidos en el servicio creado en el sistema PRODSYS. La opción DESCRIPCIÓN se utiliza para describir el servicio recién copiado.
BIND SERVICE(PRODSYS."payroll") COPY("payroll"."getEmployeeSalary") COPYVER(Ver2) QUALIFIER(PRODQUAL) DESCRIPTION('This is the PRODSYS copy of getEmployeeSalary')