您想使用CAST和COLLECT將引用聚合到一個集合中: insert into actor values( actor_type( 29, 'Carrie', 'Fisher', DATE '1956-10-21', DATE '2016-12-27', 'USA', ( SELECT CAST( COLLECT(REF(m)) AS movies_type ) FROM movie m WHERE movie_id IN (7, 8, 9) ) )); db<>fiddle here insert into actor values (actor_type(29,'Carrie','Fisher',TO_DATE('21/10/1956', 'DD/MM/YY'),TO_DATE('27/12/2016', 'DD/MM/YY'),'USA', movies_type(select ref(m) from movie m where movie_id in (7, 8, 9)))); 為什么它說缺少表達式? 因為您有movie_type(),其中()括號用于對象的構造函數,然后在其中有一個SELECT語句,該語句嵌套在另一個沒有被()括號包圍的語句中(因為周圍的括號用于構造函數)。 所以我改成了這個 insert into actor values (actor_t