wm_concat替代函數(shù) 為什么oracle12c無法使用WM_CONCAT?
為什么oracle12c無法使用WM_CONCAT?建庫時的個選項需要安裝,如果沒有安裝就沒有這個函數(shù),也可以不用安裝,自己構(gòu)建一個這樣的函數(shù),網(wǎng)上搜索一下,http://zjm16.iteye.co
為什么oracle12c無法使用WM_CONCAT?
建庫時的個選項需要安裝,如果沒有安裝就沒有這個函數(shù),也可以不用安裝,自己構(gòu)建一個這樣的函數(shù),網(wǎng)上搜索一下,http://zjm16.iteye.com/blog/899941。
WM_CONCAT是oracle的非公開函數(shù),并不鼓勵使用,新版本oracle并沒有帶此函數(shù),需要手工加上。
1、下載三個文件:owmctab.plb 、 owmaggrs.plb 、 owmaggrb.plb
2、用sqlplus登錄:sqlplus -logon sys/123 as sysdba
3、執(zhí)行@C:UsersJOYTRAVELDesktopWMSYS用戶owmaggrb.plb
4、如果執(zhí)行結(jié)果報錯,說找不到WMSYS用戶,那么執(zhí)行 @C:UsersJOYTRAVELDesktopWMSYS用戶owmctab.plb;再執(zhí)行owmaggrb和owmaggrs。
oracle函數(shù)WM_CONCAT分隔符默認為逗號,但為什么有時是
sys.wm_concat是oracle10g才有的函數(shù),之前就沒有。
而且這個一直是用逗號做分隔符的,
你說的情況,可能是:
用wm_concat后再用replace進行替換了,將 逗號 替換成 冒號了, 這也是一般的方法。
自己改寫了wm_concat的函數(shù),網(wǎng)上有這個函數(shù)的原始代碼。
oracle中WMSYS.WM_CONCAT函數(shù)關(guān)系的列出現(xiàn)亂碼?
使用SELECT * FROM NLS_DATABASE_PARAMETERS WHERE PARAMETER = "NLS_CHARACTERSET"看看你的字符集選的什么,否則換一個字符集試一試。
oracle行轉(zhuǎn)列函數(shù)?
推薦用WM_CONCAT函數(shù)SELECT A.STD, WM_CONCAT(A.F3) NEW_RESULFROM (SELECT STD, F3FROM (SELECT STD, F1 F3FROM TABLE_AUNION ALLSELECT STD, F2 F3 FROM TABLE_A) A) AGROUP BY A.STD
oracle語句中如何把一列的值合并為一個值,用逗號隔開?
所有版本的oracle都可以使用wm_concat()函數(shù) 。例:select wm_concat(name) as name from user但如果是oracle11g,使用listagg() within group()函數(shù) 。例:select listagg(name, ‘,’) within group( order by name) as name from user使用wm_Concat:使用ListAgg:結(jié)果: