BigQuery在参数化查询中使用数组

528

我需要使用数组运行参数化查询。

适用于BigQuery API的Python客户端库

id_pull = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

query = "SELECT column1 FROM `table1` WHERE id = @get_id;"

query_params = [
    bigquery.ArrayQueryParameter(
        'get_id', 'INT64', id_pull)
]

job_config = bigquery.QueryJobConfig()
job_config.query_parameters = query_params

query_job = client.query(query, location='US', job_config=job_config)  #API request-starts query

results = query_job.result()  # Waits for job to complete.

我遵循了文档中的说明,但是,执行后出现此错误:

提高self._exception google.api_core.exceptions.BadRequest:400对于参数类型:INT64,ARRAY,运算符=没有匹配的签名。支持的签名:ANY = ANY [1:67]

有人是什么问题,以及如何解决?

米哈伊尔·伯利安(Mikhail Berlyant)

我认为问题出在您的WHERE子句中

代替

WHERE id = @get_id    

它应该像

WHERE id IN UNNEST(@get_id)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章