Decode360's Blog

          業(yè)精于勤而荒于嬉 QQ:150355677 MSN:decode360@hotmail.com

            BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 ::  :: 管理 ::
            397 隨筆 :: 33 文章 :: 29 評論 :: 0 Trackbacks
          PLSQL的遞歸
          ?
          ??? 今天想寫一個PLSQL的函數(shù),需要實(shí)現(xiàn)遞歸,以前一直都沒有在PLSQL里用過遞歸,上網(wǎng)查了一下發(fā)現(xiàn)PLSQL確實(shí)可以實(shí)現(xiàn)遞歸的,貼個網(wǎng)上的例子:
          ?
          ?
          SQL> create or replace function get_char_one_by_one(v_str varchar2)
          ? 2??? return varchar2 is
          ? 3? begin
          ? 4??? if v_str is not null and length(v_str) > 1 then
          ? 5????? return substr(v_str, 1, 1) || ' ' || get_char_one_by_one(substr(v_str, 2));
          ? 6??? else
          ? 7????? return v_str;
          ? 8??? end if;
          ? 9? end;
          10? /
          ?
          Function created
          ?
          SQL> select get_char_one_by_one('I am good boy') from dual;
          ?
          GET_CHAR_ONE_BY_ONE('IAMGOODBO
          -------------------------------------------
          I?? a m?? g o o d?? b o y
          ?
          ?

          ??? 自己隨便寫一個練練手,列出每個以','分開的字符部分:
          ?
          SQL> create or replace function get_part(v_char in varchar2) return varchar2 is
          ? 2??? v_temp??????? integer;
          ? 3??? v_insert_char varchar2(1000);
          ? 4? begin
          ? 5??? v_temp??????? := instr(v_char, ',', 1);
          ? 6??? v_insert_char := substr(v_char, 1, v_temp - 1);
          ? 7??? if v_temp > 0 then
          ? 8????? dbms_output.put_line(v_insert_char);
          ? 9????? return get_part(substr(v_char, v_temp + 1));
          10??? else
          11????? dbms_output.put_line(v_char);
          12????? return null;
          13??? end if;
          14? end;
          15? /
          ?
          Function created
          ?
          SQL> select get_part('42342fesh,43rfddfg,t35greg4,f43g54') from dual;
          ?
          GET_PART('42342FESH,43RFDDFG,T
          -----------------------------------------------
          ?
          42342fesh
          43rfddfg
          t35greg4
          f43g54
          posted on 2009-01-28 22:29 decode360 閱讀(1844) 評論(0)  編輯  收藏 所屬分類: 06.PLSQL
          主站蜘蛛池模板: 卢氏县| 洛扎县| 吉林省| 油尖旺区| 禹城市| 桐乡市| 新干县| 皮山县| 株洲县| 开平市| 兖州市| 霍山县| 南木林县| 望都县| 唐河县| 德化县| 景洪市| 赫章县| 昌黎县| 吉安县| 濮阳县| 萍乡市| 栾川县| 横峰县| 芷江| 祥云县| 五河县| 建宁县| 长子县| 墨竹工卡县| 马关县| 昌邑市| 揭西县| 鄂尔多斯市| 磴口县| 武穴市| 遂溪县| 冕宁县| 博客| 子洲县| 满洲里市|