我正在编写一些使用 WM_CONCAT 函数的程序。当我运行此查询时:
SELECT WM_CONCAT(DISTINCT employee_id)
FROM employee
WHERE ROWNUM < 20;
它工作正常。当我尝试在包函数或过程中编译相对相同的查询时,会产生以下错误:PL/SQL: ORA-30482: DISTINCT option not allowed for this function
FUNCTION fetch_raw_data_by_range
RETURN VARCHAR2 IS
v_some_string VARCHAR2(32000);
BEGIN
SELECT WM_CONCAT(DISTINCT employee_id)
INTO v_some_string
FROM employee
WHERE ROWNUM < 20;
RETURN v_some_string;
END;
我意识到 WM_CONCAT 不受官方支持,但有人可以解释为什么它可以作为 DISTINCT 的独立查询工作,而不是在包中编译吗?