【发布时间】:2013-10-24 21:43:07
【问题描述】:
我正在编写一些使用 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 的独立查询工作,但不能在包中编译?
【问题讨论】:
-
使用 LISTAGG 函数应该可以得到类似的结果。
-
我将其标记为 oracle10g,它不提供该功能
标签: oracle plsql oracle10g oracle-sqldeveloper