

 Amazon Redshift 將不再支援從修補程式 198 開始建立新的 Python UDFs。現有 Python UDF 將繼續正常運作至 2026 年 6 月 30 日。如需詳細資訊，請參閱[部落格文章](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/)。

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# COPY 搭配 範本
<a name="r_COPY-WITH-TEMPLATE"></a>

您可以使用 Redshift 範本搭配 COPY 命令來簡化命令語法，並確保資料載入操作之間的一致性。您不需要重複指定相同的格式參數，而是在範本中定義一次參數，並在 COPY 命令中參考範本。當您使用範本時，COPY 命令會將範本中的參數與直接在命令中指定的任何參數結合。如果相同的參數同時出現在範本和命令中，則命令參數優先。如需詳細資訊，請參閱[建立 範本](r_CREATE_TEMPLATE.md)。

COPY 命令的範本可以使用下列項目建立：
+ [資料格式參數](copy-parameters-data-format.md)
+ [檔案壓縮參數](copy-parameters-file-compression.md)
+ [資料轉換參數](copy-parameters-data-conversion.md)
+ [資料載入操作](copy-parameters-data-load.md)

如需支援參數的完整清單，請參閱 [COPY](r_COPY.md)命令。

## 所需的許可
<a name="r_COPY-WITH-TEMPLATE-privileges"></a>

若要在 COPY 命令中使用範本，您必須具有：
+ 執行 COPY 命令所需的所有必要許可 （請參閱 [所需的許可](r_COPY.md#r_COPY-permissions) )
+ 下列其中一個範本許可：
  + 超級使用者權限
  + 範本上的 USAGE 權限和包含範本之結構描述上的 USAGE 權限

## 語法
<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*   
（選用） 範本存在的資料庫名稱。如果未指定，則會使用目前的資料庫。

 *schema\$1name*   
（選用） 範本所在的結構描述名稱。如果未指定，則會在目前的搜尋路徑中搜尋範本。

 *template\$1name*   
要在 COPY 中使用的範本名稱。

## 使用須知
<a name="r_COPY-WITH_TEMPLATE-usage-notes"></a>
+ 命令特定的參數 （來源、目的地、授權） 仍必須在 COPY 命令中指定。
+ 範本不能包含 COPY 命令的資訊清單檔案規格。

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

下列範例示範如何建立範本，並在 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;
```

當範本和命令中都存在參數時，命令參數優先。在此範例中，如果範本`public.test_template`包含 ，`DELIMITER '|'`但 COPY 命令指定 `DELIMITER ','`，則會使用命令中的逗號分隔符號 (`,`)，而不是範本中的管道分隔符號 (`|`)。

```
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;
```