我不相信wm_concat
返回一个CLOB
.
这表明回报Typ=1
是VARCHAR2
SQL> select dump(wm_concat(sysdate)) from dual;
DUMP(WM_CONCAT(SYSDATE))
--------------------------------------------------------------------------------
Typ=1 Len=9: 49,52,45,70,69,66,45,49,51
如果您创建一个视图,您也可以看到
SQL> ed
Wrote file afiedt.buf
1 create view vw_wm_concat
2 as
3* select wm_concat(sysdate) col from dual
SQL> /
View created.
SQL> desc vw_wm_concat;
Name Null? Type
----------------------------------------- -------- ----------------------------
COL VARCHAR2(4000)
如果将VARCHAR2
返回的 byWM_CONCAT
转换为 a CLOB
,则下一个问题是 Oracle 不支持对执行 a所需DISTINCT
的CLOB
列执行 a UNION
。假设您真的不需要删除重复的行,您可以使用 aUNION ALL
而不是 a UNION
。
将两者放在一起,就像这样
SQL> ed
Wrote file afiedt.buf
1 select to_clob(1) from dual
2 union all
3* select to_clob(wm_concat(sysdate)) col from dual
SQL> /
TO_CLOB(1)
------------------------------------------------------------
1
14-FEB-13
将工作