【问题标题】:Can we Use Snowflake Tables functions in the procedure?我们可以在程序中使用雪花表函数吗?
【发布时间】:2021-03-15 03:32:47
【问题描述】:

专家,

我正在尝试在雪花过程中使用表函数。但是它给我一个错误。

创建过程 ...... …… extcnt ="select count(*) from table(information_schema.external_table_files(table_name=>''MYTABLE''))";
snowflake.execute({sqlText: extcnt}); .....

我收到以下错误消息。在过程中使用表函数有什么限制吗?请帮忙。

“JavaScript 执行错误:未捕获 100183 - 存储过程执行错误:当前用户的请求信息在存储过程中不可访问”

问候, 戈皮

【问题讨论】:

标签: snowflake-cloud-data-platform java-stored-procedures


【解决方案1】:

检查“调用者权限和所有者权限存储过程” - 这可能是该错误消息的来源:

在定义存储过程时,您可以向EXECUTE AS CALLER 询问它,这会改变它对不同资源的访问权限。

如果满足以下所有条件,则将存储过程创建为所有者权限存储过程:您希望将任务委托给另一个用户,该用户将以所有者的权限运行,而不是调用者自己的权限 [ ...]

如果满足以下条件,则将存储过程创建为调用者权限存储过程:存储过程仅对调用者拥有或在​​ [...] 上具有所需权限的对象进行操作

CREATE PROCEDURE sv_proc1()
    RETURNS VARCHAR
    LANGUAGE JAVASCRIPT
    EXECUTE AS CALLER
    AS
    $$
...

【讨论】:

  • 感谢它在更改为调用者时起作用。但是在这个过程中,我需要刷新另一个用户创建的外部。为了刷新外部表,我需要拥有/更高的权限。因此我们使用 EXECUTE AS OWNER 。这是一个限制,因为当过程使用 OWNER 而不是 CALLER 时我们不能使用 Tables 函数?
  • 你试过了吗?发生了什么?
猜你喜欢
  • 2021-12-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-11-26
  • 2020-11-28
  • 1970-01-01
  • 2020-12-07
相关资源
最近更新 更多