Decode360's Blog

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

            BlogJava :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 ::  :: 管理 ::
            397 隨筆 :: 33 文章 :: 29 評(píng)論 :: 0 Trackbacks
          <2009年1月>
          28293031123
          45678910
          11121314151617
          18192021222324
          25262728293031
          1234567

          公告

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

          常用鏈接

          留言簿(13)

          隨筆分類(397)

          隨筆檔案(397)

          文章分類(33)

          新聞分類(15)

          收藏夾(74)

          Blog_List

          IT_Web

          My_Link

          最新隨筆

          最新評(píng)論

          PLSQL的遞歸
          ?
          ??? 今天想寫(xiě)一個(gè)PLSQL的函數(shù),需要實(shí)現(xiàn)遞歸,以前一直都沒(méi)有在PLSQL里用過(guò)遞歸,上網(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
          ?
          ?

          ??? 自己隨便寫(xiě)一個(gè)練練手,列出每個(gè)以','分開(kāi)的字符部分:
          ?
          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) 評(píng)論(0)  編輯  收藏 所屬分類: 06.PLSQL
          主站蜘蛛池模板: 昌图县| 海口市| 霍林郭勒市| 阳春市| 嵩明县| 温州市| 冷水江市| 锡林郭勒盟| 邛崃市| 房山区| 手机| 鸡泽县| 咸阳市| 教育| 盐山县| 油尖旺区| 华池县| 马龙县| 新田县| 新乡县| 余姚市| 安泽县| 祁连县| 诏安县| 新平| 博兴县| 阿克陶县| 东阳市| 施秉县| 抚顺市| 安仁县| 温泉县| 七台河市| 勐海县| 鄯善县| 台南市| 江华| 涿州市| 台湾省| 奇台县| 尼木县|