首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Snowflake -系统/内置存储过程

Snowflake -系统/内置存储过程
EN

Stack Overflow用户
提问于 2021-05-08 05:02:01
回答 1查看 41关注 0票数 0

Snowflake有没有附带的存储过程?

代码语言:javascript
复制
SHOW PROCEDURES IN ACCOUNT;

SELECT * FROM TABLE(RESULT_SCAN(LAST_QUERY_ID())) WHERE "is_builtin" != 'N';
-- 0 rows

SHOW FUNCTIONS IN ACCOUNT;

SELECT * FROM TABLE(RESULT_SCAN(LAST_QUERY_ID())) WHERE "is_builtin" != 'N';
--  571

我们有相当多的函数列表,但我找不到一个存储过程。

一些函数(例如SYSTEM$CANCEL_ALL_QUERIES)包含副作用,这意味着它们可以是存储过程(它们甚至支持通过CALL执行):

代码语言:javascript
复制
SELECT SYSTEM$CANCEL_ALL_QUERIES(CURRENT_SESSION()::INT);
CALL SYSTEM$CANCEL_ALL_QUERIES(CURRENT_SESSION()::INT);

这种方法背后有什么理由吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-05-08 06:50:50

Snowflake在过去的6年里一直是一个不断发展的产品。当它第一次发布时,不支持动态SQL aka过程,对数据库自检的支持也很少,就像您在PostgreSQL的系统表中所做的那样。

许多"do X“或"tell me about Y”都是通过相当丑陋的函数调用来完成的,它们清楚地显示了你在哪里逃离了沙坑(与PostgreSQL相比,数据库的健康/状态也是“表”)。我记得我们的团队编写了支持从SHOW命令读取结果的代码,因为RESULT_SCAN还不存在。

因此平台发生了很大的变化,现在使用“函数”的心理模型只读,“过程”改变心态,似乎事情符合模型。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67441640

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档