久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

怎么在Oracle12C數(shù)據(jù)庫創(chuàng)建wm

251次閱讀
沒有評論

共計(jì) 2018 個(gè)字符,預(yù)計(jì)需要花費(fèi) 6 分鐘才能閱讀完成。

本篇內(nèi)容介紹了“怎么在 Oracle12C 數(shù)據(jù)庫創(chuàng)建 wm_concat 函數(shù)”的有關(guān)知識,在實(shí)際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓丸趣 TV 小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!

當(dāng)我們的程序需要連接 12C 數(shù)據(jù)庫時(shí),原本使用 wm_concat 函數(shù)的地方會出現(xiàn)報(bào)錯(cuò),這是由于 12C 已經(jīng)摒棄了 wm_concat 這個(gè)函數(shù),可以采取的辦法有使用 listagg 函數(shù)代替 wm_concat 函數(shù),但是程序中所有涉及 wm_concat 函數(shù)的地方都得改成 listagg 函數(shù)的寫法,所以為了減小修改程序的工作量,可以通過手工創(chuàng)建 wm_concat 函數(shù)來解決這個(gè)問題。

一、用 sys 用戶以 SYSDBA 身份登錄數(shù)據(jù)庫,執(zhí)行以下命

CREATE OR REPLACE TYPE WM_CONCAT_IMPL AS OBJECT
-- AUTHID CURRENT_USER 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
/
-- 定義類型 body
CREATE OR REPLACE TYPE BODY WM_CONCAT_IMPL
STATIC FUNCTION ODCIAGGREGATEINITIALIZE(SCTX IN OUT WM_CONCAT_IMPL)
RETURN NUMBER
BEGIN
SCTX := WM_CONCAT_IMPL(NULL) ;
RETURN ODCICONST.SUCCESS;
MEMBER FUNCTION ODCIAGGREGATEITERATE(SELF IN OUT WM_CONCAT_IMPL,
P1 IN VARCHAR2)
RETURN NUMBER
BEGIN
IF(CURR_STR IS NOT NULL) THEN
CURR_STR := CURR_STR ||  ,  || P1;
CURR_STR := P1;
END IF;
RETURN ODCICONST.SUCCESS;
MEMBER FUNCTION ODCIAGGREGATETERMINATE(SELF IN WM_CONCAT_IMPL,
RETURNVALUE OUT VARCHAR2,
FLAGS IN NUMBER)
RETURN NUMBER
BEGIN
RETURNVALUE := CURR_STR ;
RETURN ODCICONST.SUCCESS;
MEMBER FUNCTION ODCIAGGREGATEMERGE(SELF IN OUT WM_CONCAT_IMPL,
SCTX2 IN WM_CONCAT_IMPL)
RETURN NUMBER
BEGIN
IF(SCTX2.CURR_STR IS NOT NULL) THEN
SELF.CURR_STR := SELF.CURR_STR ||  ,  || SCTX2.CURR_STR ;
END IF;
RETURN ODCICONST.SUCCESS;
/
-- 自定義函數(shù)列表
CREATE OR REPLACE FUNCTION wm_concat(P1 VARCHAR2)
RETURN VARCHAR2 AGGREGATE USING WM_CONCAT_IMPL ;
/

二、創(chuàng)建同義詞并授權(quán)

create public synonym WM_CONCAT_IMPL for sys.WM_CONCAT_IMPL
create public synonym wm_concat for sys.wm_concat
grant execute on WM_CONCAT_IMPL to public
grant execute on wm_concat to public
/

“怎么在 Oracle12C 數(shù)據(jù)庫創(chuàng)建 wm_concat 函數(shù)”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識可以關(guān)注丸趣 TV 網(wǎng)站,丸趣 TV 小編將為大家輸出更多高質(zhì)量的實(shí)用文章!

正文完
 
丸趣
版權(quán)聲明:本站原創(chuàng)文章,由 丸趣 2023-07-28發(fā)表,共計(jì)2018字。
轉(zhuǎn)載說明:除特殊說明外本站除技術(shù)相關(guān)以外文章皆由網(wǎng)絡(luò)搜集發(fā)布,轉(zhuǎn)載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 德钦县| 嘉峪关市| 晋州市| 林州市| 乌鲁木齐县| 永年县| 瑞金市| 江都市| 锡林浩特市| 甘谷县| 南华县| 青海省| 大新县| 沾益县| 四会市| 乌拉特后旗| 泾源县| 上高县| 唐山市| 巫山县| 凭祥市| 西乌珠穆沁旗| 延边| 泗阳县| 邵东县| 科技| 桓台县| 花莲县| 鄂伦春自治旗| 邹城市| 水城县| 华池县| 临汾市| 巴林左旗| 兴业县| 安溪县| 惠安县| 内黄县| 贺兰县| 南江县| 平邑县|