在Oracle樹(shù)結(jié)構(gòu)中實(shí)現(xiàn)存儲(chǔ)過(guò)程
此文章主要是對(duì)Oracle樹(shù)結(jié)構(gòu)中的實(shí)現(xiàn)存儲(chǔ)過(guò)程的具體操作步驟,其中包括對(duì)創(chuàng)建表 IT的實(shí)際操作步驟,以及如何向相關(guān)的數(shù)據(jù)中插入數(shù)據(jù)并提交相關(guān)事務(wù)與創(chuàng)建存儲(chǔ)過(guò)程p的相關(guān)內(nèi)容的介紹。
第一步:創(chuàng)建表 IT
- create table IT
- (
- id number primary key ,
- cont varchar2(255),
- pid number,
- isleaf number(1),
0代表非葉子節(jié)點(diǎn) 1代表葉子節(jié)點(diǎn)。
- grade number(2)
- );
第二步:向數(shù)據(jù)中插入數(shù)據(jù)并提交事務(wù)
insert into IT values (1, '大家好', 0, 0, 0);
insert into IT values (2, '你也好', 1, 0, 1);
insert into IT values (3, '愿大家學(xué)業(yè)有成', 2, 1, 2);
commit; --提交事務(wù)
- select * from it
實(shí)現(xiàn)Oracle樹(shù)結(jié)構(gòu)的存儲(chǔ)過(guò)程的第三步:創(chuàng)建存儲(chǔ)過(guò)程p
- create or replace procedure p (v_pid IT.pid%type, v_level binary_integer)
- is
- cursor c is select * from IT where pid = v_pid;
- v_preStr varchar2(1024) := '';
- begin
- for i in 1..v_level
- loop
- v_preStr := v_preStr || '**$';
- end loop;
- for v_IT in c
- loop
- dbms_output.put_line(v_preStr || v_IT.cont);
- if(v_IT.isleaf = 0) then
- p(v_IT.id, v_level + 1);
- end if;
- end loop;
- end;
第四步:?jiǎn)?dòng)serveroutput 利用exec命令實(shí)現(xiàn)樹(shù)形展示 在pl/sql中的
Command Window下運(yùn)行
- SQL> set serveroutput on
- SQL> exec p(0,0);
運(yùn)行結(jié)果,上述的相關(guān)內(nèi)容就是對(duì)Oracle樹(shù)結(jié)構(gòu)存儲(chǔ)過(guò)程的描述,希望會(huì)給你帶來(lái)一些幫助在此方面。
【編輯推薦】