雪花 UDF 调用 "Show Shares" 函数
Snowflake UDF calling "Show Shares" function
是否可以在 Snowflake 的 FUNCTION 或 PROCEDURE 中发出 "Show Shares" 函数调用?由于信息模式中没有元数据对象来查询有关共享的信息,我们正在寻找一种方法来创建 UDF 以获取此元数据并对结果进行操作。
尝试执行以下代码时:
CREATE OR REPLACE PROCEDURE get_share_metadata()
RETURNS VARIANT
LANGUAGE javascript
AS
$$
var x=snowflake.execute( { sqlText: "SHOW SHARES" } );
$$
;
call get_share_metadata();
返回以下错误:
存储过程中的执行错误GET_SHARE_METADATA:存储过程执行错误:不支持的语句类型'SHOW SHARE'。在Snowflake.execute,第2行位置20
我不确定函数与存储过程的关系,但根据您要执行的操作,您是否研究过仅使用 RESULT_SCAN?
SHOW SHARES;
SELECT * FROM TABLE(RESULT_SCAN(last_query_id()));
您可以在存储过程中执行 SHOW ....
命令 ONLY 如果过程设置为 EXECUTE AS来电者。
作为调用者执行时,执行过程的角色 必须 具有在过程中执行命令的权限。
示例:
SHOW SHARES
只能由 ACCOUNTADMIN 角色访问(从技术上讲,任何角色都可以 运行 命令成功,但结果仅限于帐户管理员)。
SHOW USERS
只能使用对该帐户具有 MANAGE GRANTS 权限的任何角色成功执行。
文档:
是否可以在 Snowflake 的 FUNCTION 或 PROCEDURE 中发出 "Show Shares" 函数调用?由于信息模式中没有元数据对象来查询有关共享的信息,我们正在寻找一种方法来创建 UDF 以获取此元数据并对结果进行操作。
尝试执行以下代码时:
CREATE OR REPLACE PROCEDURE get_share_metadata()
RETURNS VARIANT
LANGUAGE javascript
AS
$$
var x=snowflake.execute( { sqlText: "SHOW SHARES" } );
$$
;
call get_share_metadata();
返回以下错误: 存储过程中的执行错误GET_SHARE_METADATA:存储过程执行错误:不支持的语句类型'SHOW SHARE'。在Snowflake.execute,第2行位置20
我不确定函数与存储过程的关系,但根据您要执行的操作,您是否研究过仅使用 RESULT_SCAN?
SHOW SHARES;
SELECT * FROM TABLE(RESULT_SCAN(last_query_id()));
您可以在存储过程中执行 SHOW ....
命令 ONLY 如果过程设置为 EXECUTE AS来电者。
作为调用者执行时,执行过程的角色 必须 具有在过程中执行命令的权限。
示例:
SHOW SHARES
只能由 ACCOUNTADMIN 角色访问(从技术上讲,任何角色都可以 运行 命令成功,但结果仅限于帐户管理员)。SHOW USERS
只能使用对该帐户具有 MANAGE GRANTS 权限的任何角色成功执行。
文档: