斷點

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

          recursion遞歸

          Posted on 2010-07-24 16:25 斷點 閱讀(267) 評論(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;

          主站蜘蛛池模板: 云南省| 微博| 开化县| 分宜县| 毕节市| 镇平县| 泽库县| 香河县| 永安市| 仙游县| 湟源县| 临江市| 北票市| 高雄县| 元阳县| 西华县| 伊金霍洛旗| 濮阳市| 乌拉特中旗| 湘潭县| 泰安市| 泗水县| 高雄市| 老河口市| 浦县| 平阳县| 墨竹工卡县| 正阳县| 金川县| 额济纳旗| 区。| 徐水县| 齐齐哈尔市| 凯里市| 江城| 灵武市| 澳门| 滨海县| 城固县| 三都| 思茅市|