oracle - 将 WMSYS.WM_CONCAT 与 Oracle XE 10g 结合使用

标签 oracle oracle10g oracle-xe ora-00904 wm-concat

当我尝试将 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/

相关文章:

sql - 如何使用简单的更新语句更新表中的 varray 类型?

javascript - Oracle APEX 穿梭项目验证

sql - Oracle MIN 作为分析函数 - ORDER BY 的奇怪行为?

java - 将二进制存储到 BLOB 中

java - 如何使用select关键字显示oracle数据库中的记录

javascript - 调用 window.open 时 firefox 中的问题

oracle - 使用 JDBC 连接 Oracle 数据库的 URL 字符串格式

java - jooq 为 Oracle 返回没有时间的日期

oracle - 如何在 pl-sql 中测试函数是否正常工作?

oracle - 如何选择和优化oracle索引?