【发布时间】:2020-05-20 23:59:07
【问题描述】:
我正在尝试将具有嵌套多值列的表中的数据加载到具有相同架构但少一个或多个字段的另一个表中。
表 1 架构:
Person RECORD REPEATED ;
Person.Address RECORD REPEATED ;
Person.Address.phone INTEGER NULLABLE ;
Person.Address.zip INTEGER NULLABLE ;
Person.flag INTEGER ;
Wt INTEGER ;
表 2 架构:
Person RECORD REPEATED ;
Person.Address RECORD REPEATED ;
Person.Address.phone INTEGER NULLABLE ;
Person.flag INTEGER ;
Wt INTEGER ;
请注意,这两个表的唯一区别是表 2 没有“zip”字段。
我正在尝试使用以下查询从 Table-1 加载 Table-2:
INSERT INTO TABLE-2
SELECT
ARRAY (SELECT AS STRUCT (ARRAY (SELECT AS STRUCT (SELECT PA.phone from unnest (P.Address) as
PA)), P.flag) from unnest(Table-1.Person) as P), s.Wt
from Table-1
这总是会引发以下错误: “查询列 1 的类型为 ARRAY>,INT64>>>,无法插入到类型为 ARRAY> 的列 Person 中,在 [2:1] 处标记为 INT64>>”
如果您查看查询,它与目标列的查询完全匹配。知道出了什么问题吗?
【问题讨论】: