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>