文档解释
ORA-22900: the SELECT list item of THE subquery is not a collection type
Cause: The THE subquery must SELECT a nested table or VARRAY item.
Action: change the subquery to SELECT a nested table or VARRAY item.
ORA-22900 该错误指出依赖与子查询的SELECT值列表不是集合类型。
官方解释
当使用等值运算符试图将子查询的SELECT列表表达式的结果分配给集合类型时,此错误通常会发生。该子查询中的SELECT列表必须返回单个值,而不是元组。
常见案例
如下所示,我尝试将子查询的SELECT表达式的结果分配给集合变量emp_ids,但由于子查询返回多列,所以会引发该错误:
DECLARE
emp_ids emp.emp_id_t;
BEGIN
emp_ids := (SELECT emp_id, last_name FROM emp);
END;
一般处理方法及步骤
1.检查所提供的子查询,确保子查询中的SELECT列表只返回单个值,而不是元组。
2.将子查询的结果赋值给单个类型的变量而不是集合变量。