我可以在redshift的存储过程中有表变量吗?

Posted

技术标签:

【中文标题】我可以在redshift的存储过程中有表变量吗?【英文标题】:Can I have table variable in stored procedure in redshift? 【发布时间】:2020-04-27 12:37:56 【问题描述】:

我们计划为我们的逻辑创建一个过程,该过程应该在 redshift 中的 PL SQL 中(使用工作台)。 我们可以使用表变量来遍历表的行吗?就像我们在 Python 中有数据框一样。

【问题讨论】:

【参考方案1】:

有点。 Redshift 为存储过程实现了RECORD 数据类型。这种类型的变量可以保存任意的行集。

"Overview of stored procedures in Amazon Redshift" > "Record types"

但是,请注意,您目前不能从 RECORD 类型变量中获得 SELECT,只能循环遍历内容。

在我们的 GitHub 存储库中有几个使用 RECORD 变量的示例:"amazon-redshift-utils/src/StoredProcedures/"

【讨论】:

谢谢。我会尝试更多地研究 RECORD。但问题是,我没有做任何事情来帮助我打印任何东西,我已经尝试过 - RAISE INFO 'info' 、dbms output、print 和 RAISE EXCEPTIONS。每次都说语法错误。 与其他数据库相比,语法可能完全不同。建议从除了 RAISE INFO 之外什么都不做的最简单的 SP 开始,然后从那里迭代。

以上是关于我可以在redshift的存储过程中有表变量吗?的主要内容,如果未能解决你的问题,请参考以下文章

在Redshift返回错误的存储过程中传递变量

sqlserver 怎么看存储过程的上次执行时间

AWS Redshift:如何存储大小大于 100K 的文本字段

我可以在存储过程中有一个可选的 OUTPUT 参数吗?

我应该如何使用 sql server 中的存储过程将列名存储在变量中?

是否可以将可变数量的参数传递给redshift中的存储过程?