Google BigQuery:存储过程中不支持结构数组

问题描述 投票:0回答:1

我试图在存储过程中定义一个结构数组,目的是从 SELECT 语句收集结果,该语句将返回多行结构。比如:

DECLARE my_array ARRAY<STRUCT<STRING,STRING,STRING>> DEFAULT NULL;
SET my_array = (SELECT ARRAY (
SELECT AS STRUCT id, type, name FROM `mytable` where company=0));

但是 BigQuery 失败并出现错误:

验证过程主体时出错(将 OPTIONS(strict_mode=false) 添加到 抑制):不支持的变量类型: 阵列>

根据文档,BigQuery 支持结构数组。那么为什么会出现这个错误呢?感谢任何帮助。

谢谢。

stored-procedures google-bigquery
1个回答
0
投票

BigQuery 确实支持

ARRAY of STRUCT
,但不支持在 BigQuery 的存储过程中声明
DEFAULT NULL
。根据此文档,数组的默认值不能是
NULL
或包含任何 NULL 元素。因此,您不能用
ARRAY<STRUCT<STRING, STRING, STRING\>\>
来声明
DEFAULT NULL

作为解决方法,您可以尝试使用

```

数组> 默认 [ ];

```

© www.soinside.com 2019 - 2024. All rights reserved.