WMSYS.WM_CONCAT不出现在12c中,原因是WMSYS.WM_CONCAT是一个oracle supported的internal函数,是在oracle workspace manager组件(wmsys用户)中包含的,这个函数是for workspace manager内部使用。
这意味着一般应用程序不建议去调用这个函数,因为这个函数可能会因为版本升级,或者需要优化性能等等其他的原因,oracle开发可以在不通知用户的情况下,修改或者取消这个函数。
所以不建议在application中使用这个函数。在11.2之后,可以使用LISTAGG函数。
详见WMSYS.WM_CONCAT Should Not Be Used For Customer Applications, It Is An Internal Function (Doc ID 1336219.1)
10g:
Oracle Database 10g Enterprise Edition Release 10.2.0.5.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
SQL> select owner,object_name,object_type from dba_objects where object_name='WM_CONCAT';
OWNER OBJECT_NAME OBJECT_TYPE
-------------------- ------------------------------ ------------------------------
PUBLIC WM_CONCAT SYNONYM
WMSYS WM_CONCAT FUNCTION
SQL>
11g:
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
SQL> select owner,object_name,object_type from dba_objects where object_name='WM_CONCAT';
OWNER OBJECT_NAME OBJECT_TYPE
-------------------- ------------------------------ ------------------------------
PUBLIC WM_CONCAT SYNONYM
WMSYS WM_CONCAT FUNCTION
SQL>
12c:
Connected to:
Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production
With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options
SQL> select owner,object_name,object_type from dba_objects where object_name='WM_CONCAT';
no rows selected
SQL>