ORA-22900: the SELECT list item of THE subquery is not a collection type

文档解释

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.将子查询的结果赋值给单个类型的变量而不是集合变量。

你可能感兴趣的