Decode360's Blog

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

            BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 ::  :: 管理 ::
            302 隨筆 :: 26 文章 :: 82 評(píng)論 :: 0 Trackbacks
          ??? 今天想寫一個(gè)PLSQL的函數(shù),需要實(shí)現(xiàn)遞歸,以前一直都沒有在PLSQL里用過遞歸,上網(wǎng)查了一下發(fā)現(xiàn)PLSQL確實(shí)可以實(shí)現(xiàn)遞歸的,貼個(gè)網(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
          ?
          ?

          ??? 自己隨便寫一個(gè)練練手,列出每個(gè)以','分開的字符部分:
          ?
          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




          -The End-

          posted on 2009-01-28 22:29 decode360-3 閱讀(350) 評(píng)論(0)  編輯  收藏 所屬分類: SQL Dev
          主站蜘蛛池模板: 诸暨市| 左权县| 杭锦旗| 门源| 额济纳旗| 临江市| 云和县| 旬邑县| 永平县| 蒙城县| 石泉县| 阳原县| 茂名市| 潞西市| 多伦县| 儋州市| 梓潼县| SHOW| 文水县| 丰台区| 马公市| 白河县| 洛扎县| 溆浦县| 泗阳县| 安岳县| 龙泉市| 静宁县| 汉川市| 郴州市| 稷山县| 黄龙县| 土默特左旗| 乐亭县| 神农架林区| 枞阳县| 陕西省| 淳安县| 石棉县| 武威市| 右玉县|