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

BigQuery计划查询中能否调用存储过程?调用时遇「Procedure is not found」错误求助

解决BigQuery计划查询调用存储过程报"Procedure is not found"的问题

我之前也碰到过这个问题,别着急,咱们一步步来排查解决:

1. 确认计划查询的目标项目与存储过程所在项目匹配

计划查询创建时会默认使用当前选中的项目,但有时候会和存储过程所在项目不匹配——哪怕你在CALL语句里写了完整路径,也可能因为执行上下文的问题识别失败:

  • 编辑计划查询时,找到「目标项目」选项,确保它和存储过程所在的项目完全一致;
  • 或者在CALL语句里用反引号包裹完整路径,比如:CALL your-project-id.your-schema.your-procedure(),避免项目/ schema名称带特殊字符(比如连字符、大写字母)导致识别异常。

2. 检查计划查询服务账号的权限

计划查询是用BigQuery专属服务账号执行的,这个账号可能没有访问存储过程的权限:

  • 给计划查询使用的服务账号添加bigquery.routines.invoker角色(可针对存储过程所在的schema或整个项目);
  • 同时确保该账号拥有bigquery.jobs.create权限,以及存储过程执行时涉及的表的读写权限。

3. 确保存储过程是持久化的

如果你创建的是临时存储过程(比如用CREATE TEMP PROCEDURE),它只会在当前会话存在,计划查询作为独立执行会话根本访问不到。确认你的存储过程是用CREATE PROCEDURE创建的持久化过程。

4. 强制指定执行的schema

有时候计划查询的默认schema和你撰写查询时的不一样,导致找不到过程:
在计划查询的SQL开头加上USE your-project-id.your-schema;,强制指定执行上下文,再调用存储过程。比如:

USE `my-project`.`my-schema`;
CALL `my-project`.`my-schema`.`my-procedure`();

按照这些步骤排查,应该就能解决你遇到的"Procedure is not found"错误了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.29 15:22:49