当我尝试将 WMSYS.WM_CONCAT 与 Oracle XE 10g 一起使用时,收到编译错误:ORA-00904: "WMSYS"."WM_CONCAT": 无效标识符
。任何人都可以验证这确实是由于 XE 缺乏此(未记录的)功能吗?如果是这样,是否有办法在 XE 中启用它?
最佳答案
我找到了几个引用站点,但没有成功启用它。我最终编写了自己的函数来处理串联。
CREATE or replace FUNCTION CONCAT_LIST( cur SYS_REFCURSOR, sep Varchar2 ) RETURN VARCHAR2 IS
ret VARCHAR2(32000);
tmp VARCHAR2(4000);
BEGIN
loop
fetch cur into tmp;
exit when cur%NOTFOUND;
if ret is null then
ret := tmp;
else
ret := ret || sep || tmp;
end if;
end loop;
RETURN ret; END;/
然后就可以调用为
从双中选择不同的 CONCAT_LIST(CURSOR(SELECT id FROM test_table1), ',') test_table1
关于oracle - 将 WMSYS.WM_CONCAT 与 Oracle XE 10g 结合使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3513787/