oracle 樹狀結構遞迴 PL/SQL輸出控制 包括空格輸出控制

來源:互聯網
上載者:User

標籤:

樹狀結構

預存程序中通過遞迴構建,類似BBS回帖顯示,代碼共三段:

建表,插入資料,建立預存程序顯示;

1.
create table article
(
id number primary key,
cont varchar2(4000),
pid number,
idleaf number(1), --0為非葉子節點,1為葉子節點
alevel number(2)
);

 

2.

insert into article values(1,‘螞蟻大戰大象‘,0,0,0);
insert into article values(2,‘大象被打趴下了‘,1,0,1);
insert into article values(3,‘螞蟻也不好過‘,1,0,1);
insert into article values(4,‘瞎說‘,2,1,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);

3.

create or replace procedure tree(v_pid article.pid%type,v_alevel article.alevel%type)
is
  cursor c is select * from article where pid=v_pid;
  v_str varchar2(2048) :=‘ ‘;
begin
  for i in 0..v_alevel loop
  v_str :=v_str||‘      ‘;
end loop;
  for v_article in c loop dbms_output.put_line(v_str||v_article.cont);
  if (v_article.isleaf =0) then
    tree(v_article.id,v_article.alevel);
  end if;
  end loop;
  end;

結果前面的N*4個空格不顯示:

 

 設定空格輸出後,問題解決:

其它問題:第一層的輸出前不應該帶空格,設定初始字串為空白,i從1開始。

 

 設定 oracle sqlplus DBMS_OUTPUT.put_line

下面內容摘錄自

http://blog.csdn.net/wbj1234566/article/details/2557515

1 設定DBMS_OUTPUT.put_line輸出顯示     SET SERVEROUTPUT ON

2 關閉DBMS_OUTPUT.put_line輸出顯示     SET SERVEROUTPUT OFF

3 設定DBMS_OUTPUT緩衝區大小     SET SERVEROUTPUT ON SIZE number(1000)

4 設定只顯示DBMS_OUTPUT預設的長度     SET SERVEROUTPUT ON FORMAT TRUNCATED

5 設定空格的輸出     SET SERVEROUTPUT ON FORMAT WRAPPED

6 取消空格的輸出     SET SERVEROUTPUT ON FORMAT WORD_WRAPPED

oracle 樹狀結構遞迴 PL/SQL輸出控制 包括空格輸出控制

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.