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

如何在Databricks中调用Snowflake存储过程?

Databricks调用Snowflake存储过程报错"unknown function"的解决办法

以下是针对问题的排查和解决步骤:

  • 确认存储过程存在且有权限

    1. 登录Snowflake控制台,检查yourdbname.schemaname.test_proc是否确实存在于指定的数据库和schema下。
    2. 确保Databricks连接Snowflake使用的账号拥有该存储过程的EXECUTE权限,可在Snowflake中执行授权命令:
      GRANT EXECUTE ON PROCEDURE yourdbname.schemaname.test_proc(VARCHAR, VARCHAR) TO ROLE your_connection_role;
      
      注意:命令中的参数类型必须与存储过程定义的参数类型完全匹配。
  • 修正调用语法

    1. 检查库、schema、存储过程名称的拼写,若对象名包含特殊字符或大小写敏感,需用双引号包裹:
      cs.execute('call "yourdbname"."schemaname"."test_proc"(\'value1\', \'value2\')')
      
    2. 确认参数类型与存储过程定义一致,比如存储过程接受整数参数时,不能传递字符串值。
  • 配置连接的默认上下文
    若Databricks的Snowflake连接未指定默认数据库和schema,可先切换上下文再调用:

    cs.execute("USE DATABASE yourdbname")
    cs.execute("USE SCHEMA schemaname")
    cs.execute("call test_proc('value1', 'value2')")
    
  • 区分存储过程与函数
    确保你调用的是存储过程而非函数:Snowflake存储过程用CALL语句,函数用SELECT语句,不要混淆两者的调用方式。

内容的提问来源于stack exchange,提问作者Guna P

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 02:43:12