【发布时间】:2020-06-18 22:57:54
【问题描述】:
我创建了一个表类型来将多个员工 ID 传递给我的过程。但是,有一个要求,如果没有向输入参数传递任何内容,则应检索所有员工。
已创建表类型 -
CREATE OR REPLACE TYPE EMP_LIST IS TABLE OF NUMBER;
我写了下面的查询来检查空值,但它失败并出现错误 - ORA-01427:单行子查询返回多于一行
SELECT COL_LIST FROM EMP
WHERE EMP_ID IN (CASE WHEN (SELECT COLUMN_VALUE FROM table(EMP_LIST())) IS NULL
THEN (SELECT EMP_ID FROM EMP)
ELSE (SELECT COLUMN_VALUE FROM table(EMP_LIST())) END)
CASE 不能返回多个值。有人可以建议一种替代方案或任何其他解决方案来处理这种情况吗?
谢谢。
【问题讨论】:
-
也许
emp_list应该命名为number_list。