提问人:Sam W 提问时间:11/16/2023 最后编辑:Sam W 更新时间:11/17/2023 访问量:29
有没有办法在Snowflake上运行的Streamlit应用程序中显示所有仓库?
Is there a way to show all warehouses in a Streamlit application running on Snowflake?
问:
我有一个在 Snowflake 上运行的 Streamlit 原生应用程序,我想显示用户帐户中所有仓库的下拉菜单。
在我的 setup.sql 脚本中,我使用以下 Python 代码创建了一个存储过程 get_available_warehouses():
def get_available_warehouses(cls, session: Session):
session.sql("SHOW WAREHOUSES").collect()
return session.sql("SELECT * FROM table(RESULT_SCAN(LAST_QUERY_ID()))").collect()
然后,我的 Streamlit 应用程序调用此存储过程,如下所示:
session.sql("call public.get_available_warehouses()")
执行此操作时,存储过程失败,并显示以下消息:
query_id_place_holder_XYZ not found
这似乎是运行 LAST_QUERY_ID() 的问题。此问题的解决方案似乎是在定义存储过程时添加 EXECUTE AS CALLER。
但是现在,当我这样做时,该应用程序甚至不会安装,因为我收到以下消息:
Procedure 'GET_AVAILABLE_WAREHOUSES' cannot be created/altered. Application can only own owner's rights stored procedures.
你有什么想法吗?最终,也许我甚至不需要这样做,我只想获取用户的仓库列表。
答: 暂无答案
评论