

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

# Limitaciones de los procedimientos almacenados
<a name="stored-procedure-constraints"></a>

En este tema se describen las limitaciones de los procedimientos almacenados de Amazon Redshift.

Se aplican las siguientes consideraciones cuando utiliza procedimientos almacenados de Amazon Redshift.

## Diferencias entre Amazon Redshift y PostgreSQL para compatibilidad de procedimientos almacenados
<a name="stored-procedure-differences"></a>

 Diferencias entre la compatibilidad de procedimientos almacenados de Amazon Redshift y de PostgreSQL:
+ Amazon Redshift no admite sustracciones y, por lo tanto, tiene una compatibilidad limitada con bloques de manejo de excepciones.

## Consideraciones y límites
<a name="stored-procedure-limits"></a>

A continuación, se presentan consideraciones sobre los procedimientos almacenados en Amazon Redshift:
+ El número máximo de procedimientos almacenados para una base de datos es de 10 000.
+ El tamaño máximo del código fuente para un procedimiento es 2 MB.
+ El número máximo de cursores explícitos e implícitos que puede abrir a la vez en una sesión de usuario es uno. Los bucles FOR que se repiten a lo largo del conjunto de resultados de una instrucción de SQL abren cursores implícitos. No se admiten cursores anidados.
+ Los cursores explícitos e implícitos tienen las mismas restricciones de tamaño del conjunto de resultados que los cursores de Amazon Redshift estándar. Para obtener más información, consulte [Restricciones del cursor](declare.md#declare-constraints). 
+ El número máximo de niveles para llamadas anidadas es 16.
+ El número máximo de parámetros de procedimientos es 32 para argumentos de entrada y 32 para argumentos de salida.
+ El número máximo de variables en un procedimiento almacenado es 1024.
+ Los comandos de SQL que exigen su propio contexto de transacción no se admiten dentro de un procedimiento almacenado. Entre los ejemplos se incluyen:
  + PREPARE
  + CREATE/DROP DATABASE
  + CREATE EXTERNAL TABLE
  + VACUUM
  + SET LOCAL
  + ALTER TABLE APPEND
+ La llamada del método `registerOutParameter` a través del controlador de conectividad de bases de datos de Java (JDBC) no es compatible con el tipo de datos `refcursor`. Para ver un ejemplo de uso del tipo de datos `refcursor`, consulte [Devolución de un conjunto de resultados desde un procedimiento almacenado](stored-procedure-result-set.md).