成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專欄INFORMATION COLUMN

ORACLE12C數(shù)據(jù)庫(kù) WMSYS.WM_CONCAT函數(shù)無(wú)效問(wèn)題

IT那活兒 / 2895人閱讀
ORACLE12C數(shù)據(jù)庫(kù) WMSYS.WM_CONCAT函數(shù)無(wú)效問(wèn)題

一、背景


11G數(shù)據(jù)庫(kù)的用戶遷移到12C,在老庫(kù)(Oracle11g)中用戶業(yè)務(wù)查詢SQL中有使用到WMSYS.WM_CONCAT()函數(shù),在用戶遷移到新庫(kù)后,業(yè)務(wù)查詢SQL中包含WMSYS.WM_CONCAT()函數(shù)的均提示“無(wú)效的標(biāo)識(shí)符”錯(cuò)誤。通過(guò)mos上確認(rèn)該函數(shù)已在12c中廢棄。


二、解決辦法

 

1、在12c中,我們可以使用listagg函數(shù)替代wm_concat函數(shù)進(jìn)行使用。

2、手工創(chuàng)建vm_concat函數(shù)

考慮到修改程序的工作量和時(shí)間要求,此次我們通過(guò)手工創(chuàng)建方式解決,具體操作如下:

(1)解鎖wmsys用戶

alter user wmsys account unlock;

(2)wmsys用戶授權(quán),可根據(jù)需要授權(quán),不建議授權(quán)所有權(quán)限

GRANT ALL PRIVILEGES TO WMSYS;

3、SYS下創(chuàng)建可用的wm_concat函數(shù),直接執(zhí)行以下語(yǔ)句

(1)定義類型

CREATE OR REPLACE TYPE WMSYS.WM_CONCAT_IMPL AS OBJECT

(

CURR_STR VARCHAR2(32767),

STATIC FUNCTION ODCIAGGREGATEINITIALIZE(SCTX IN OUT WM_CONCAT_IMPL) RETURN NUMBER,

MEMBER FUNCTION ODCIAGGREGATEITERATE(SELF IN OUT WM_CONCAT_IMPL,

P1 IN VARCHAR2) RETURN NUMBER,

MEMBER FUNCTION ODCIAGGREGATETERMINATE(SELF IN WM_CONCAT_IMPL,

RETURNVALUE OUT VARCHAR2,

FLAGS IN NUMBER)

RETURN NUMBER,

MEMBER FUNCTION ODCIAGGREGATEMERGE(SELF IN OUT WM_CONCAT_IMPL,

SCTX2 IN WM_CONCAT_IMPL) RETURN NUMBER

);

/

(2)定義類型body:

CREATE OR REPLACE TYPE BODY WMSYS.WM_CONCAT_IMPL

IS

STATIC FUNCTION ODCIAGGREGATEINITIALIZE(SCTX IN OUT WM_CONCAT_IMPL)

RETURN NUMBER

IS

BEGIN

SCTX := WM_CONCAT_IMPL(NULL) ;

RETURN ODCICONST.SUCCESS;

END;

MEMBER FUNCTION ODCIAGGREGATEITERATE(SELF IN OUT WM_CONCAT_IMPL,

P1 IN VARCHAR2)

RETURN NUMBER

IS

BEGIN

IF(CURR_STR IS NOT NULL) THEN

CURR_STR := CURR_STR || , || P1;

ELSE

CURR_STR := P1;

END IF;

RETURN ODCICONST.SUCCESS;

END;

MEMBER FUNCTION ODCIAGGREGATETERMINATE(SELF IN WM_CONCAT_IMPL,

RETURNVALUE OUT VARCHAR2,

FLAGS IN NUMBER)

RETURN NUMBER

IS

BEGIN

RETURNVALUE := CURR_STR ;

RETURN ODCICONST.SUCCESS;

END;

MEMBER FUNCTION ODCIAGGREGATEMERGE(SELF IN OUT WM_CONCAT_IMPL,

SCTX2 IN WM_CONCAT_IMPL)

RETURN NUMBER

IS

BEGIN

IF(SCTX2.CURR_STR IS NOT NULL) THEN

SELF.CURR_STR := SELF.CURR_STR || , || SCTX2.CURR_STR ;

END IF;

RETURN ODCICONST.SUCCESS;

END;

END;

/

(3)自定義行變列函數(shù):

CREATE OR REPLACE FUNCTION wmsys.wm_concat(P1 VARCHAR2)

RETURN VARCHAR2 AGGREGATE USING WM_CONCAT_IMPL ;

/

4、創(chuàng)建完成,給其創(chuàng)建同義詞及授權(quán),以供其他用戶能正常使用。

create public synonym WM_CONCAT_IMPL for wmsys.WM_CONCAT_IMPL

/

create public synonym wm_concat for wmsys.wm_concat

/

grant execute on WM_CONCAT_IMPL to public

/

grant execute on WM_CONCAT to public

/


5、還原wmsys用戶狀態(tài)

Alteruser wmsys account lock;

6、測(cè)試12cWM_CONCAT函數(shù)可以正常使用

END





文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/129978.html

相關(guān)文章

  • 集成安裝之Oracle12C補(bǔ)丁升級(jí)數(shù)據(jù)字典更新報(bào)錯(cuò)處理

    集成安裝之Oracle12C補(bǔ)丁升級(jí)數(shù)據(jù)字典更新報(bào)錯(cuò)處理 img{ display:block; margin:0 auto !important; width:100%; } body{ width:75%; ...

    IT那活兒 評(píng)論0 收藏795
  • DBASK問(wèn)答集萃(2)

    摘要:新晉技術(shù)專家下面是墨天輪部分新晉的技術(shù)專家。大家可以點(diǎn)擊往期閱讀墨天輪技術(shù)專家邀請(qǐng)函了解詳情,申請(qǐng)成為我們的技術(shù)專家,加入專家團(tuán)隊(duì),與我們一起創(chuàng)建一個(gè)開(kāi)放互助的數(shù)據(jù)庫(kù)技術(shù)社區(qū)。新關(guān)聯(lián)公眾號(hào)墨天輪是一個(gè)開(kāi)放互助的數(shù)據(jù)庫(kù)技術(shù)社區(qū)。 引言 近期我們?cè)贒BASK小程序增加了數(shù)據(jù)庫(kù) MongoDB、Redis、 Elasticsearch、DB2、Weblogic 等新的的專題欄目和一些新的技術(shù)...

    liuchengxu 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<