

 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/)。

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

# 預存程序限制
<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。
+ 您在使用者工作階段中可同時開啟的明確和隱含游標數目上限是一個。在 SQL 陳述式的結果集上反覆運算的 FOR 迴圈會開啟隱含游標。不支援巢狀游標。
+ 明確和隱含游標的結果集大小限制，與標準 Amazon Redshift 游標相同。如需詳細資訊，請參閱[游標限制條件](declare.md#declare-constraints)。
+ 巢狀呼叫層數上限為 16。
+ 輸入引數的程序參數數目上限為 32，輸出引數的上限也是 32。
+ 預存程序中的變數數目上限為 1,024。
+ 預存程序內不支援需要有自己的交易範圍的任何 SQL 命令。範例包括：
  + PREPARE
  + CREATE/DROP DATABASE
  + CREATE EXTERNAL TABLE
  + VACUUM
  + SET LOCAL
  + ALTER TABLE APPEND
+ 對於 `refcursor` 資料類型，不支援透過 Java 資料庫連線 (JDBC) 驅動程式發出的 `registerOutParameter` 方法呼叫。關於使用 `refcursor` 資料類型的範例，請參閱[從預存程序傳回結果集。](stored-procedure-result-set.md)。