存储过程限制 - Amazon Redshift

存储过程限制

本主题介绍 Amazon Redshift 存储过程的限制。

以下注意事项在您使用 Amazon Redshift 存储过程时适用。

Amazon Redshift 与 PostgreSQL 的存储过程支持区别

Amazon Redshift 与 PostgreSQL 中的存储过程支持之间存在下列区别:

  • Amazon Redshift 不支持子事务,因此对异常处理数据块的支持有限。

注意事项和限制

以下是 Amazon Redshift 中存储过程的注意事项:

  • 数据库的最大存储过程数为 10000 个。

  • 过程的源代码最大大小为 2 MB。

  • 在一个用户会话中,您可以并发打开的显式和隐式游标的最大数量为 1。对 SQL 语句结果集进行迭代的 FOR 循环打开隐式游标。不支持嵌套游标。

  • 显式和隐式游标在结果集大小上与标准 Amazon Redshift 游标具有相同的限制。有关更多信息,请参阅 游标约束

  • 嵌套调用的最大层数为 16。

  • 对于输入参数,过程参数的最大数量为 16,对于输出参数为 32。

  • 存储过程中变量的最大数量为 1024。

  • 在存储过程内部,不支持任何需要自己的事务上下文的 SQL 命令。示例包括:

    • PREPARE

    • CREATE/DROP DATABASE

    • CREATE EXTERNAL TABLE

    • VACUUM

    • SET LOCAL

    • ALTER TABLE APPEND

  • 对于 registerOutParameter 数据类型,不支持通过 Java Database Connectivity (JDBC) 驱动程序调用 refcursor 方法。有关使用 refcursor 数据类型的示例,请参阅。从存储过程中返回结果集