斷點

          每天進(jìn)步一點點!
          posts - 174, comments - 56, trackbacks - 0, articles - 21

          recursion遞歸

          Posted on 2010-07-24 16:25 斷點 閱讀(263) 評論(0)  編輯  收藏 所屬分類: Oracle DBA

          --遞歸,樹狀結(jié)構(gòu)的存儲與展示
          drop table article;
          create table article
          (
          id number primary key,
          count varchar2(4000),
          pid number,
          isleaf number(1), --0 代表非葉子節(jié)點,1代表葉子節(jié)點
          alevel number(2)
          );

          insert into article values(1,'螞蟻大戰(zhàn)大象',0,0,0);
          insert into article values(2,'大象被打趴下',1,0,1);
          insert into article values(3,'螞蟻也不好過',2,1,2);
          insert into article values(4,'瞎說',2,0,2);
          insert into article values(5,'沒有瞎說',4,1,3);
          insert into article values(6,'怎么可能',1,0,1);
          insert into article values(7,'怎么沒有可能',6,1,2);
          insert into article values(8,'可能性是很大的',6,1,2);
          insert into article values(9,'大象進(jìn)醫(yī)院了',2,0,2);
          insert into article values(10,'護(hù)士是螞蟻',9,1,3);
          commit;

          螞蟻大戰(zhàn)大象
              大象被打趴下了
                  螞蟻也不好過
                  瞎說
                      沒有瞎說
                  大象進(jìn)醫(yī)院了
                      護(hù)士是螞蟻
              怎么可能
                  怎么沒有可能
                  可能性是很大的
           

          --用存儲過程展現(xiàn)樹狀結(jié)構(gòu)。
          create or replace procedure p(v_pid article.pid%type,v_level binary_integer) is
            cursor c is select * from article where pid = v_pid;
            v_preStr varchar2(1024) := '';
          begin
            for i in 0..v_level loop
              v_preStr := v_preStr || '****';
            end loop;

            for v_article in c loop
              dbms_output.put_line(v_preStr ||v_article.cont);
              if(v_article.isleaf=0) then
                 p(v_artile.id,v_levle +1);
              end if;
            end loop;
          end;

          主站蜘蛛池模板: 乡宁县| 宣恩县| 根河市| 武乡县| 岢岚县| 台东县| 白沙| 永胜县| 隆林| 绵竹市| 平舆县| 灵丘县| 巨鹿县| 达孜县| 岳阳县| 海原县| 天门市| 内江市| 望城县| 安顺市| 沈阳市| 安仁县| 湟源县| 安达市| 荥经县| 古浪县| 新宾| 女性| 沙湾县| 赤城县| 兴山县| 巴东县| 资溪县| 章丘市| 娄底市| 罗源县| 安吉县| 逊克县| 拉萨市| 德格县| 双流县|