You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何获取当前运行的Snowpark Python存储过程名称

如何获取当前运行的Snowpark Python存储过程名称

嘿,这个需求很实用!要在Snowpark Python存储过程里拿到当前正在运行的存储过程名称,用Snowflake的内置系统函数就能轻松搞定,我结合你的例子给你一步步说明:

首先,Snowflake自带了CURRENT_PROCEDURE()这个系统函数,它会返回当前执行的存储过程的完全限定名称(格式是数据库名.模式名.存储过程名)。在Python存储过程里,我们可以通过Snowpark Session执行这个SQL,拿到结果后再按需处理。

修改你原有的存储过程代码,调整后如下:

CREATE OR REPLACE PROCEDURE copydata(fromtable VARCHAR, totable VARCHAR, count INT)
RETURNS STRING
LANGUAGE PYTHON
RUNTIME_VERSION = '3.8'
PACKAGES = ('snowflake-snowpark-python')
HANDLER = 'run'
AS
$$
def run(session, from_table, to_table, count):
    # 获取当前存储过程的完全限定名称
    full_proc_name = session.sql("SELECT CURRENT_PROCEDURE()").collect()[0][0]
    # 只提取存储过程本身的名称(去掉数据库和模式前缀)
    proc_name = full_proc_name.split('.')[-1]
    
    session.table(from_table).limit(count).write.save_as_table(to_table)
    return f"SUCCESS {proc_name}"
$$;

调用这个存储过程后,它就会返回类似SUCCESS COPYDATA的结果啦。要是你需要保留完整的限定名称,直接用full_proc_name就行,不用拆分~

备注:内容来源于stack exchange,提问作者orellabac

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.21 10:29:31