У меня нормально работает следующее. Вам нужно FLATTEN()
для Массивов, но не для ОБЪЕКТОВ.
Может быть, вы смешиваете два?
CREATE OR REPLACE TABLE T AS
SELECT 1 ID, ARRAY_CONSTRUCT(1, 2, 3) A, OBJECT_CONSTRUCT('X', 2, 'Y', 3) O;
CREATE OR REPLACE MATERIALIZED VIEW T_MV AS
SELECT
ID,
O:X::NUMBER O_X,
O:Y::NUMBER O_Y,
VALUE A
FROM T, LATERAL FLATTEN(INPUT => A);