Decode360's Blog

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

            BlogJava :: 首頁 :: 新隨筆 :: 聯系 ::  :: 管理 ::
            397 隨筆 :: 33 文章 :: 29 評論 :: 0 Trackbacks
          <2009年1月>
          28293031123
          45678910
          11121314151617
          18192021222324
          25262728293031
          1234567

          公告

          話到七分,酒至微醺,筆墨疏宕,言詞婉約,古樸殘破,含蓄醞籍,就是不完而美之最高境界。

          常用鏈接

          留言簿(13)

          隨筆分類(397)

          隨筆檔案(397)

          文章分類(33)

          新聞分類(15)

          收藏夾(74)

          Blog_List

          IT_Web

          My_Link

          最新隨筆

          最新評論

          PLSQL的遞歸
          ?
          ??? 今天想寫一個PLSQL的函數,需要實現遞歸,以前一直都沒有在PLSQL里用過遞歸,上網查了一下發現PLSQL確實可以實現遞歸的,貼個網上的例子:
          ?
          ?
          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 閱讀(1848) 評論(0)  編輯  收藏 所屬分類: 06.PLSQL
          主站蜘蛛池模板: 新余市| 蚌埠市| 二连浩特市| 三明市| 仙居县| 惠水县| 松江区| 桂阳县| 水城县| 连平县| 湖南省| 洱源县| 类乌齐县| 梁平县| 苍梧县| 贵溪市| 黎城县| 南涧| 宣威市| 安福县| 偏关县| 璧山县| 洪洞县| 年辖:市辖区| 天水市| 都匀市| 正镶白旗| 湘阴县| 澎湖县| 东辽县| 会昌县| 崇州市| 波密县| 高平市| 瓦房店市| 蕉岭县| 惠水县| 兴业县| 来宾市| 平江县| 栖霞市|