我希望使用Snowpark API(版本1.6.0
(在Snowflake上创建一个临时视图。我创建了一个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做同样的事情吗?
从错误消息中,我了解到您正在运行一个存储过程。默认情况下,如果未指定,存储过程将根据所有者的权限运行,从而阻止创建临时对象。因此,通过在存储过程中添加EXECUTE AS caller语句来使用调用方的权限。
例如:
CREATE or replace PROCEDURE sample_proc(
)
RETURNS VARCHAR
...
...
EXECUTE AS CALLER
AS