**----來自網上
----第一步:建立表 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返回的個數一樣...