

 Amazon Redshift dejará de admitir la creación de nuevas UDF de Python a partir del parche 198. Las UDF de Python existentes seguirán funcionando hasta el 30 de junio de 2026. Para obtener más información, consulte la [publicación del blog](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/). 

# COPY con TEMPLATE
<a name="r_COPY-WITH-TEMPLATE"></a>

Puede utilizar plantillas de Redshift con comandos COPY para simplificar la sintaxis de los comandos y garantizar la coherencia en todas las operaciones de carga de datos. En lugar de especificar los mismos parámetros de formato repetidamente, los define una vez en una plantilla y hace referencia a la plantilla en sus comandos COPY. Cuando utiliza una plantilla, el comando COPY combina los parámetros de la plantilla con cualquier parámetro especificado directamente en el comando. Si el mismo parámetro aparece tanto en la plantilla como en el comando, el parámetro del comando tiene prioridad. Para obtener más información, consulte [CREATE TEMPLATE](r_CREATE_TEMPLATE.md). 

Las plantillas para el comando COPY se pueden crear con:
+ [Parámetros de formato de datos](copy-parameters-data-format.md)
+ [Parámetros de compresión de archivos](copy-parameters-file-compression.md)
+ [Parámetros de conversión de datos](copy-parameters-data-conversion.md)
+ [Operaciones de carga de datos](copy-parameters-data-load.md)

Para obtener una lista completa de los parámetros admitidos, consulte el comando [COPY](r_COPY.md).

## Permiso necesario
<a name="r_COPY-WITH-TEMPLATE-privileges"></a>

Para utilizar una plantilla en un comando COPY, debe tener:
+ Todos los permisos necesarios para ejecutar el comando COPY (consulte [Permisos necesarios](r_COPY.md#r_COPY-permissions))
+ Uno de los permisos de plantilla siguientes:
  + Privilegios de superusuario
  + Privilegio USAGE sobre la plantilla y privilegio USAGE sobre el esquema que contiene la plantilla

## Sintaxis
<a name="r_COPY-WITH-TEMPLATE-syntax"></a>

```
COPY target_table FROM 's3://...'
authorization
[ option, ...]
USING TEMPLATE [database_name.][schema_name.]template_name;
```

## Parameters
<a name="r_COPY-WITH-TEMPLATE-parameters"></a>

 *database\$1name*   
(Opcional) El nombre de la base de datos donde se encuentra la plantilla. Si no se especifica, se utiliza la base de datos actual.

 *schema\$1name*   
(Opcional) El nombre del esquema donde se encuentra la plantilla. Si no se especifica, la plantilla se busca en la ruta de búsqueda actual.

 *template\$1name*   
El nombre de la plantilla que se utilizará en COPY. 

## Notas de uso
<a name="r_COPY-WITH_TEMPLATE-usage-notes"></a>
+ Los parámetros específicos del comando (origen, destino, autorización) deben seguir especificándose en el comando COPY.
+ Las plantillas no pueden contener especificaciones de archivos manifiestos para comandos COPY.

## Ejemplos
<a name="r_COPY-WITH-TEMPLATE-examples"></a>

Los ejemplos siguientes muestran cómo crear una plantilla y utilizarla en comandos COPY:

```
CREATE TEMPLATE public.test_template FOR COPY AS
CSV DELIMITER '|' IGNOREHEADER 1 MAXERROR 100;

COPY public.target_table
FROM 's3://amzn-s3-demo-bucket/staging-folder'
IAM_ROLE 'arn:aws:iam::123456789012:role/MyLoadRoleName'
USING TEMPLATE public.test_template;
```

Cuando un parámetro existe tanto en la plantilla como en el comando, el parámetro del comando tiene prioridad. En este ejemplo, si la plantilla `public.test_template` contiene `DELIMITER '|'` pero el comando COPY especifica `DELIMITER ','`, se usará el delimitador de coma (`,`) del comando en lugar de la barra vertical (`|`) de la plantilla. 

```
COPY public.target_table
FROM 's3://amzn-s3-demo-bucket/staging-folder'
IAM_ROLE 'arn:aws:iam::123456789012:role/MyLoadRoleName'
DELIMITER ','
USING TEMPLATE public.test_template;
```