国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

oracle新版無wh_concat函數問題小結

IT那活兒 / 3294人閱讀
oracle新版無wh_concat函數問題小結


一. 問題描述

11gr2和12C上已經摒棄了wm_concat函數,但是我們很多程序員在程序中卻使用了該函數,導致程序出現錯誤,為了減輕程序員修改程序的工作量,只有通過手工創建個wm_concat函數,來臨時解決該問題。


二. 問題現象

在執行數據庫導入過程中,在編譯階段出現如下:
alter  PACKAGE BODY LISAPP.HAND_MONITOR compile;
  LINE/COL ERROR
  319/11 PL/SQL: SQL Statement ignored
  319/18 PL/SQL: ORA-00904: "WM_CONCAT": invalid identifier


三. 解決方法

手工創建wm_concat函數

1. 解鎖wmsys用戶

alter user wmsys account unlock;

2. 創建包、包體和函數

以wmsys用戶登錄數據庫,執行下面的命令

sqlplus user/password@pdbname;----連接到那個PDB下。
CREATE OR REPLACE TYPE WM_CONCAT_IMPLAS OBJECT  
-- AUTHID CURRENT_USER AS OBJECT
(
CURR_STR VARCHAR2(32767),
STATIC FUNCTION ODCIAGGREGATEINITIALIZE(SCTXIN OUT WM_CONCAT_IMPL)RETURN NUMBER,
MEMBER FUNCTION ODCIAGGREGATEITERATE(SELF IN OUT WM_CONCAT_IMPL,
P1IN VARCHAR2)RETURN NUMBER,
MEMBER FUNCTION ODCIAGGREGATETERMINATE(SELF IN WM_CONCAT_IMPL,
RETURNVALUEOUT VARCHAR2,
FLAGSIN NUMBER)
RETURN NUMBER,
MEMBER FUNCTION ODCIAGGREGATEMERGE(SELF IN OUT WM_CONCAT_IMPL,
SCTX2IN WM_CONCAT_IMPL)RETURN NUMBER  
);
/

3. 定義類型body:

CREATE OR REPLACE TYPE BODY WM_CONCAT_IMPL
IS  
STATIC FUNCTION ODCIAGGREGATEINITIALIZE(SCTXIN 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_STRIS 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_STRIS NOT NULL)THEN  
SELF.CURR_STR := SELF.CURR_STR ||, || SCTX2.CURR_STR ;
END IF;
RETURN ODCICONST.SUCCESS;
END;
END;
/

4. 自定義行變列函數:

CREATE OR REPLACE FUNCTION wm_concat(P1 VARCHAR2)
RETURN VARCHAR2 AGGREGATE USING WM_CONCAT_IMPL ;
/

5. 創建同義詞并授權

create or replace public synonym WM_CONCAT_IMPL for wmsys.WM_CONCAT_IMPL ;
create or replace public synonym wm_concat for wmsys.wm_concat ;
grant execute on WM_CONCAT_IMPL to public ;
grant execute on wm_concat to public ;



四. 經驗小結

注意事項:

  1. 公有同義詞---可以被所有數據庫用戶訪問

    使用scott創建公有同義詞

    grant create public synonym to scott---把公有同義詞權限賦予給scott

    create public  synonym syn_dept for dept;

  2. 私有同義詞

    create synonym synl for scott.emp;誰創建的同義詞,誰使用。


END


更多精彩干貨分享

點擊下方名片關注

IT那活兒

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/129934.html

相關文章

  • 新書推薦 |《PostgreSQL實戰》出版(提供樣章下載)

    摘要:作者譚峰張文升出版日期年月頁數頁定價元本書特色中國開源軟件推進聯盟分會特聘專家撰寫,國內多位開源數據庫專家鼎力推薦。張文升中國開源軟件推進聯盟分會核心成員之一。 很高興《PostgreSQL實戰》一書終于出版,本書大體上系統總結了筆者 PostgreSQL DBA 職業生涯的經驗總結,本書的另一位作者張文升擁有豐富的PostgreSQL運維經驗,目前就職于探探科技任首席PostgreS...

    Martin91 評論0 收藏0
  • 高性能javascript小結

    摘要:高性能小結文章轉載于我的博客最近看完了動物叢書的高性能,覺得那本書的小結部分寫得非常不錯,簡潔輕快易懂概括性很強。由于局部變量存在于作用域鏈的起始位置,因此訪問局部變量比訪問跨作用域變量更快。 高性能javascript小結 文章轉載于我的CSDN博客:http://blog.csdn.net/hello_world_20/article/details/46793317 最近看完了動...

    wujl596 評論0 收藏0
  • 金三銀四面試季節之Java 核心面試技術點 - JVM 小結

    摘要:直接對棧的操作只有兩個,就是對棧幀的壓棧和出棧。中將永久代移除,同時增加元數據區。在中,本地方法棧和虛擬機棧是在同一塊兒區域,這完全取決于技術實現的決定,并未在規范中強制。 原文:https://github.com/linsheng97... 描述一下 JVM 的內存區域 程序計數?(PC,Program Counter Register)。在 JVM 規范中,每個線程都有它自己的...

    XGBCCC 評論0 收藏0

發表評論

0條評論

IT那活兒

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<