scala 为什么我不能通过Snowpark API在Snowflake中创建临时视图?

gab6jxml  于 2022-11-09  发布在  Scala
关注(0)|答案(1)|浏览(166)

我希望创建一个雪花上使用雪花API(版本1.6.0)的临时视图。我已经创建了DataFrame,并尝试使用createOrReplaceTempView()函数,如下所示:

// code to create dataframe here
  finalDF.createOrReplaceTempView(outputTableName)

当我运行此代码时,我看到以下错误:

net.snowflake.client.jdbc.SnowflakeSQLException: Stored procedure execution error: Unsupported statement type 'temporary VIEW'.

在我的Snowflake帐户的工作表上,我能够通过原始SQL成功创建相同的表。
你知道为什么我被阻止通过Snowpark做同样的事情吗?

xmjla07d

xmjla07d1#

从错误消息中,我了解到您正在运行存储过程。默认情况下,如果未指定,则存储过程以所有者的权限运行,从而阻止创建临时对象。因此,可以通过在存储过程中添加Execute as Caller语句来使用调用方的权限。
例如:

CREATE or replace PROCEDURE sample_proc(
)
RETURNS VARCHAR
...
...
EXECUTE AS CALLER
AS

相关问题