在 Oracle PL/SQL 中,
Stored procedure 是可以 "自己 Call 自己" 的.
在 BOM 物料需求表展開時, 這個會非常實用.
範例程式碼
create procedure tomkuoPro( p_num number ) is
v_num number;
begin
-- 顯示本次結果
dbms_output.put_line( to_char(p_num) );
if p_num > 0 then
v_num := p_num - 1;
-- 自己 Call 自己
tomkuoPro( v_num );
end if;
end;
範例執行
begin
tomkuoPro( 12 );
end;
-- 執行結果
12
11
10
9
8
7
6
5
4
3
2
1
0