Adobe Experience Platform插入嵌套数组对象时遇输入不匹配错误
Adobe Experience Platform嵌套数组插入语法错误解决
问题根源
报错line 1:49: mismatched input '.' expecting {',', ')'} 是因为INSERT语句的字段列表中不能直接使用带点的嵌套字段路径(比如_spnam.profileIds),AEP SQL要求插入嵌套对象时,必须通过STRUCT()构造匹配目标表结构的嵌套对象。
修正后的SQL语句
INSERT INTO b_array_processed_data_wip SELECT -- 构造profileIds嵌套对象,匹配目标表的结构 STRUCT(_spnam.profileIds.airB_UID AS UID) AS profileIds, ARRAY_AGG(STRUCT(_spnam.arrayOfObjects.coolestInt, _spnam.arrayOfObjects.FavDessert)) AS arrayOfObjects FROM b_array_processed_data_wip GROUP BY _spnam.profileIds.airB_UID
关键修正点
- 嵌套对象构造:用
STRUCT()生成符合目标表profileIds结构的对象,而不是直接引用_spnam.profileIds这种带点路径。 - 字段名一致性:修正了GROUP BY子句中的拼写错误(原
air_UID改为airB_UID,与SELECT中的字段保持一致)。 - 显式指定字段写法:如果需要在INSERT中明确指定字段,可使用如下格式:
INSERT INTO b_array_processed_data_wip(profileIds, arrayOfObjects) SELECT STRUCT(_spnam.profileIds.airB_UID AS UID) AS profileIds, ARRAY_AGG(STRUCT(_spnam.arrayOfObjects.coolestInt, _spnam.arrayOfObjects.FavDessert)) AS arrayOfObjects FROM b_array_processed_data_wip GROUP BY _spnam.profileIds.airB_UID
内容的提问来源于stack exchange,提问作者Ritwik Mohapatra
相关产品推荐
相关产品推荐

