

 Amazon Redshift は、パッチ 198 以降、新しい Python UDF の作成をサポートしなくなります。既存の 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/)を参照してください。

# ストアドプロシージャの制限事項
<a name="stored-procedure-constraints"></a>

このトピックでは、Amazon Redshift ストアドプロシージャの制限事項について説明します。

Amazon Redshift のストアドプロシージャを使用する場合は、以下の考慮事項が適用されます。

## Amazon Redshift および PostgreSQL のストアドプロシージャサポートに関する違い
<a name="stored-procedure-differences"></a>

 Amazon Redshift および PostgreSQL 間のストアドプロシージャサポートの違いは以下のとおりです。
+ Amazon Redshift はサブトランザクションをサポートしていないため、例外処理ブロックに対するサポートは制限されます。

## 考慮事項と制限
<a name="stored-procedure-limits"></a>

Amazon Redshift のストアドプロシージャに対する考慮事項は以下のとおりです。
+ データベースのストアドプロシージャの最大数は 10,000 です。
+ プロシージャのソースコードの最大サイズは 2 MB です。
+ ユーザーセッションで同時に開くことができる明示的および暗黙的なカーソルの最大数は 1 です。SQL ステートメントの結果セットを反復処理する FOR ロープは、暗黙的なカーソルを開きます。ネストされたカーソルはサポートされていません。
+ 明示的および暗黙的なカーソルには、結果セットのサイズについて Amazon Redshift の標準カーソルと同じ制限が適用されます。詳細については、「[カーソルの制約](declare.md#declare-constraints)」を参照してください。
+ ネストされた呼び出しの最大レベル数は 16 です。
+ プロシージャパラメータの最大数は、入力引数の場合は 32、出力引数の場合は 32 です。
+ ストアドプロシージャの変数の最大数は 1,024 です。
+ 独自のトランザクションコンテキストを必要とするすべての SQL コマンドは、ストアドプロシージャ内でサポートされていません。以下に例を示します。
  + PREPARE
  + データベースの作成/削除
  + CREATE EXTERNAL TABLE
  + VACUUM
  + ローカルに設定
  + ALTER TABLE APPEND
+ Java Database Connectivity (JDBC) ドライバー経由の `registerOutParameter` メソッド呼び出しは、`refcursor` データ型ではサポートされていません。データ型の使用例については、「`refcursor`」を参照してください。。[ストアドプロシージャから結果セットを返す](stored-procedure-result-set.md)