• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
    • 軟件測試技術
    • 軟件測試博客
    • 軟件測試視頻
    • 開源軟件測試技術
    • 軟件測試論壇
    • 軟件測試沙龍
    • 軟件測試資料下載
    • 軟件測試雜志
    • 軟件測試人才招聘
      暫時沒有公告

    字號: | 推薦給好友 上一篇 | 下一篇

    數據庫基礎:用一個實例講解Oracle的自定義聚集函數

    發布: 2008-5-13 11:03 | 作者: GOD | 來源: 希賽網 | 查看: 76次 | 進入軟件測試論壇討論

    領測軟件測試網 Oracle數據庫的定制功能十分強大。Oracle不但允許用戶定制自己的函數,還可以定制自己的聚集函數和分析函數。

      本文將著重介紹使用自定義聚集函數建立一個字符串“sum”的示例:

      SQL> CREATE OR REPLACE TYPE T_LINK AS OBJECT (
      2 STR VARCHAR2(30000),
      3 STATIC FUNCTION ODCIAGGREGATEINITIALIZE
      (SCTX IN OUT T_LINK) RETURN NUMBER,
      4 MEMBER FUNCTION ODCIAGGREGATEITERATE
      (SELF IN OUT T_LINK, VALUE IN VARCHAR2) RETURN NUMBER,
      5 MEMBER FUNCTION ODCIAGGREGATETERMINATE
      (SELF IN T_LINK, RETURNVALUE OUT VARCHAR2, FLAGS IN NUMBE
      R) RETURN NUMBER,
      6 MEMBER FUNCTION ODCIAGGREGATEMERGE
      (SELF IN OUT T_LINK, CTX2 IN T_LINK) RETURN NUMBER
      7 )
      8 /
      類型已創建。
      SQL> CREATE OR REPLACE TYPE BODY T_LINK IS
      2 STATIC FUNCTION ODCIAGGREGATEINITIALIZE
      (SCTX IN OUT T_LINK) RETURN NUMBER IS
      3 BEGIN
      4 SCTX := T_LINK(NULL);
      5 RETURN ODCICONST.SUCCESS;
      6 END;
      7
      8 MEMBER FUNCTION ODCIAGGREGATEITERATE
      (SELF IN OUT T_LINK, VALUE IN VARCHAR2) RETURN NUMBER IS
      9 BEGIN
      10 SELF.STR := SELF.STR || VALUE;
      11 RETURN ODCICONST.SUCCESS;
      12 END;
      13
      14 MEMBER FUNCTION ODCIAGGREGATETERMINATE
      (SELF IN T_LINK, RETURNVALUE OUT VARCHAR2, FLAGS IN NUMBE
      R) RETURN NUMBER IS
      15 BEGIN
      16 RETURNVALUE := SELF.STR;
      17 RETURN ODCICONST.SUCCESS;
      18 END;
      19
      20 MEMBER FUNCTION ODCIAGGREGATEMERGE
      (SELF IN OUT T_LINK, CTX2 IN T_LINK) RETURN NUMBER IS
      21 BEGIN
      22 NULL;
      23 RETURN ODCICONST.SUCCESS;
      24 END;
      25 END;
      26 /
      類型主體已創建。
      SQL> CREATE OR REPLACE FUNCTION F_LINK
      (P_STR VARCHAR2) RETURN VARCHAR2
      2 AGGREGATE USING T_LINK;
      3 /
      函數已創建。
      SQL> CREATE TABLE TEST (ID NUMBER, NAME VARCHAR2(20));
      表已創建。
      SQL> INSERT INTO TEST VALUES (1, 'AAA');
      已創建 1 行。
      SQL> INSERT INTO TEST VALUES (2, 'BBB');
      已創建 1 行。
      SQL> INSERT INTO TEST VALUES (1, 'ABC');
      已創建 1 行。
      SQL> INSERT INTO TEST VALUES (3, 'CCC');
      已創建 1 行。
      SQL> INSERT INTO TEST VALUES (2, 'DDD');
      已創建 1 行。
      SQL> COMMIT;
      提交完成。
      SQL> COL NAME FORMAT A60
      SQL> SELECT ID, F_LINK(NAME) NAME FROM TEST GROUP BY ID;
      ID NAME
      ---------- ------------------------------------------------------
      1 AAAABC
      2 BBBDDD
      3 CCC

    延伸閱讀

    文章來源于領測軟件測試網 http://www.kjueaiud.com/

    TAG: oracle ORACLE Oracle 定義 函數 實例 數據庫


    關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
    版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
    北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備2023014753號-2
    技術支持和業務聯系:info@testage.com.cn 電話:010-51297073

    軟件測試 | 領測國際ISTQBISTQB官網TMMiTMMi認證國際軟件測試工程師認證領測軟件測試網

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>