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

能否在BigQuery的FROM子句中使用变量?附失败尝试代码

问题解答

直接在FROM子句里用字符串变量替代数据集名称的写法不可行。BigQuery的SQL解析器会把data_set_set当作字面量的数据集名处理,不会识别你定义的变量。

要实现这个需求,得用动态SQL,通过EXECUTE IMMEDIATE拼接并执行包含变量的查询:

DECLARE data_set_set STRING DEFAULT 'my_data_set';
DECLARE table_name_set STRING DEFAULT 'my_table_name';

EXECUTE IMMEDIATE """
  SELECT column_name, data_type
  FROM `""" || data_set_set || """.INFORMATION_SCHEMA.COLUMNS`
  WHERE table_name = ?
""" USING table_name_set;

说明:

  • 通过字符串拼接把数据集变量data_set_set插入到查询语句的对应位置
  • 用USING子句传递表名变量table_name_set,这种方式能避免SQL注入风险,也符合BigQuery的使用规范

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 07:15:02