斷點

          每天進步一點點!
          posts - 174, comments - 56, trackbacks - 0, articles - 21

          recursion遞歸

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

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

          insert into article values(1,'螞蟻大戰大象',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,'大象進醫院了',2,0,2);
          insert into article values(10,'護士是螞蟻',9,1,3);
          commit;

          螞蟻大戰大象
              大象被打趴下了
                  螞蟻也不好過
                  瞎說
                      沒有瞎說
                  大象進醫院了
                      護士是螞蟻
              怎么可能
                  怎么沒有可能
                  可能性是很大的
           

          --用存儲過程展現樹狀結構。
          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;

          主站蜘蛛池模板: 集安市| 信宜市| 孟村| 墨脱县| 大埔县| 铁岭市| 信宜市| 丹寨县| 华坪县| 天峻县| 台前县| 保山市| 汕头市| 东台市| 米易县| 武威市| 临沭县| 新闻| 河南省| 文水县| 阳朔县| 涟水县| 灵山县| 建瓯市| 博白县| 大同市| 穆棱市| 祁东县| 富源县| 乌鲁木齐县| 麟游县| 永靖县| 汾西县| 铁岭县| 宁晋县| 松桃| 大关县| 华容县| 西峡县| 固安县| 巴楚县|