【问题标题】:Porting Oracle PL/SQL to Snowflake without JavaScript在没有 JavaScript 的情况下将 Oracle PL/SQL 移植到 Snowflake
【发布时间】:2020-05-08 01:17:54
【问题描述】:

我可能错过了,但看起来 Snowflake 只允许用户定义 JavaScript UDF。我不喜欢 JavaScript 本身,但我有一个包含 PL/SQL 存储过程和几个函数的包。我想在 Snowflake 上运行这些,但不需要将所有内容都转换为 JavaScript。

尤其是因为我不能做类似的事情

INSERT INTO...

但现在需要做类似的事情

var sql='INSERT INTO...'
Snowflake.execute (sql);

大多数 PL/SQL 插入基于从另一个查询中选择的一个表。一些函数进行批量提取。有没有更简单的方法?

【问题讨论】:

  • 对您的帖子的一个小修正。 Snowflake 确实支持 SQL UDF,只是不支持 SQL 存储过程。

标签: oracle snowflake-cloud-data-platform


【解决方案1】:

虽然 Snowflake SQL 不支持 PL/SQL 或本机 SQL 游标,但有一些选项可以用于您的场景。请查看以下链接。另请注意,Snowflake 在性能方面的真正处理能力是批量处理数据而不是逐行处理数据。

https://community.snowflake.com/s/question/0D50Z00009f7StWSAU/i-have-written-below-cursor-in-sql-and-working-file-but-i-am-not-able-to-run-the-same-cursor-on-snowflake-please-help

https://docs.snowflake.com/en/user-guide/python-connector-example.html

【讨论】:

  • 您的两个答案(herehere)与复制粘贴类似,我们倾向于不鼓励这样做。答案应针对每个问题量身定制。此外,答案不应依赖于链接 - 如果它们是答案的一部分,它们是可以的,但它们不应该是答案的主要部分。
【解决方案2】:

【讨论】:

  • 您看到的大多数建议用 Python 重写的文章都是在 Snowflake 提供 Javascript 存储过程之前。 Javascript SP 是唯一的原生 Snowflake 解决方案,而 Python 需要单独的执行环境。
猜你喜欢
  • 2018-04-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-01-02
  • 1970-01-01
  • 2018-04-28
  • 2011-10-18
  • 1970-01-01
相关资源
最近更新 更多