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

从.NET 6编写的Cloud Function调用BigQuery存储过程报错

问题解决:BigQuery存储过程调用语法错误

错误原因

代码中调用存储过程时用单引号包裹了存储过程全名,这违反了BigQuery的语法规范。BigQuery调用存储过程的正确方式是直接使用项目ID.数据集.存储过程名,不需要额外添加单引号。另外你定义了skuId参数,但在CALL语句里未传入,也需要补充。

修正后的代码

var testsku = 1414;

var parameters = new BigQueryParameter[]
{
     new BigQueryParameter("skuId", BigQueryDbType.Int64, testsku),
};

BigQueryClient client = BigQueryClient.Create(projectID);
// 移除存储过程名的单引号,并传入参数占位符
string query = @"CALL xxxxxxx.xxxxxx.fraudskus(@skuId)";
BigQueryJob job = client.CreateQueryJob(
     sql: query,
     parameters: parameters,
    options: new QueryOptions { UseQueryCache = false });
// 等待任务完成
job.PollUntilCompleted();
// 统计返回行数
int numOrders = 0;
foreach (BigQueryRow row in client.GetQueryResults(job.Reference))
{
     numOrders++;
}
message = "Num of rows = " + numOrders;

关键修正点

  • 移除CALL语句中存储过程名的单引号:CALL 'xxxxxxx.xxxxxx.fraudskus'() → CALL xxxxxxx.xxxxxx.fraudskus(@skuId)
  • 在CALL语句中添加参数占位符@skuId,与定义的BigQueryParameter对应,确保参数正确传递给存储过程

修改后即可正常调用BigQuery存储过程并获取返回结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 15:00:59