在没有 JavaScript 的情况下将 Oracle PL/SQL 移植到 Snowflake

Posted

技术标签:

【中文标题】在没有 JavaScript 的情况下将 Oracle PL/SQL 移植到 Snowflake【英文标题】:Porting Oracle PL/SQL to Snowflake without JavaScript 【发布时间】: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 存储过程。 【参考方案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

【讨论】:

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

Snowflake 不支持 Oracle 专有的 PL/SQL。看起来推荐的方法是用 Python 重写程序并使用 Snowflake 的 Python API。

https://redpillanalytics.com/so-you-want-to-migrate-to-snowflake-part-2/ https://support.snowflake.net/s/question/0D50Z00008nRRhdSAG/i-am-migrating-oracle-plsql-code-into-snowflake-which-is-the-best-way-to-implement-this-using-java-api-or-python-api

【讨论】:

您看到的大多数建议用 Python 重写的文章都是在 Snowflake 提供 Javascript 存储过程之前。 Javascript SP 是唯一的原生 Snowflake 解决方案,而 Python 需要单独的执行环境。

以上是关于在没有 JavaScript 的情况下将 Oracle PL/SQL 移植到 Snowflake的主要内容,如果未能解决你的问题,请参考以下文章

如何在没有javascript的情况下将PDF嵌入网页[重复]

如何在没有 JavaScript 的情况下将 cookie 注入 WKWebView 或 WKWebSiteDataStore?

在没有 JavaScript 的情况下将 Oracle PL/SQL 移植到 Snowflake

javascript:在没有php的情况下将数据存储在文件或数据库中?

如何在没有任何错误的情况下将其他 JavaScript 文件连接到 Vue 文件?

如何在没有 ASP.NET Core 的情况下将 Json 数据从控制器发送到 javascript?