oracle樹的儲存過程

2022-09-17 07:39:07 字數 1508 閱讀 5649

**----來自網上

----第一步:建立表 it

create

table

it (

id number

primary

key,

cont 

varchar2

(255

),pid 

number

,isleaf 

number(1

), --

0代表非葉子節點 1代表葉子節點。

grade 

number(2

) );

----第二步:向資料中插入資料並提交事務

insert

into

it  

values(1

, '', 

0, 0, 

0);insert

into

it  

values(2

, '你也好', 1

, 0, 1

);insert

into

it  

values(3

, '願大家學業有成', 

2, 1, 

2);commit

;    

--提交事務

------------------   select * from it 

----第三步:建立儲存過程p

create

orreplace

procedure

p (v_pid it.pid

%type, v_level binary_integer)

iscursor

c is

select

*from

it where

pid 

=v_pid;

v_prestr 

varchar2

(1024

) :='';

begin

fori in1

..v_level

loop

v_prestr :

=v_prestr ||'

**$'

;end

loop;

forv_it inc

loop

dbms_output.put_line(v_prestr 

||v_it.cont);

if(v_it.isleaf =0

) then

p(v_it.id, v_level +1

);endif;

endloop;

end;

----第四步:啟動serveroutput 利用exec命令實現樹形展示 在pl/sql中的

----command window下執行

sql>

setserveroutput 

onsql

>

execp(0

,0);--

--執行結果

/**/

Oracle的儲存過程。

近日,因為工作需要,時間投入到寫儲存過程的中。下面貼上儲存過程。進行分析,以便自己記憶,和朋友分享儲存過程的寫法。曾幾何時,認為儲存過程很難,現在看來也並非如此。此儲存過程乃是我們用到遞迴刪除。宣告乙個帶引數的儲存過程,引數都是varchar型,如果帶有輸出引數的話,引數後面跟的型別必須有個out ...

oracle的儲存過程

以前一直對oracle的儲存過程概念很模糊,今天來複習一下 第一步 開啟輸出 set serveroutput on 第二步 建立表空間 create tablespace test data logging datafile d test.dbf size 50m autoextend on ne...

Oracle儲存過程呼叫儲存過程

oracle儲存過程呼叫有返回結果集的儲存過程一般用光標的方式,宣告乙個游標,把結果集放到游標裡面,然後迴圈游標 declare newcs sys refcursor cs1 number cs2 number cstype table rowtype table列的個數和newcs返回的個數一樣...