请教个关于展开构成的存储过程
表如下:父层为空的,子层则为机型,父层 子层
AAA
AAA A01
AAA B01
AAA C01
A01 A02
A02 A03
B01 B02
C01 C02
BBB
BBB B01
BBB B02
BBB B03 展开后如下:机型 层次 父层 子层
AAA 0 AAA
AAA 1 AAA A01
AAA 2 A01 A02
AAA 3 A02 A03
AAA 1 AAA B01
AAA 2 B01 B02
AAA 1 AAA C01
AAA 2 C01 C02
BBB 0 BBB
BBB 1 BBB B01
BBB 1 BBB B02
BBB 1 BBB B03数据量很大,层次也很多,怎么样才能提高效率。
希望有个完整具体的存储过程,分不够我再加,谢谢各位了!
表如下:父层为空的,子层则为机型,父层 子层
AAA
AAA A01
AAA B01
AAA C01
A01 A02
A02 A03
B01 B02
C01 C02
BBB
BBB B01
BBB B02
BBB B03 展开后如下:机型 层次 父层 子层
AAA 0 AAA
AAA 1 AAA A01
AAA 2 A01 A02
AAA 3 A02 A03
AAA 1 AAA B01
AAA 2 B01 B02
AAA 1 AAA C01
AAA 2 C01 C02
BBB 0 BBB
BBB 1 BBB B01
BBB 1 BBB B02
BBB 1 BBB B03数据量很大,层次也很多,怎么样才能提高效率。
希望有个完整具体的存储过程,分不够我再加,谢谢各位了!
select CONNECT_BY_ROOT 机型,
level-1 层次,
A 父层,
B 子层
from t1 start with a is null connect by prior b =a;
直接得到。
create or replace procedure p_level as
cursor c1 is select level-1 lv,A,B from t1 start with a is null connect by prior b =a;
v1 varchar2(3) ;
begin
--dbms_output.put_line('机型'||'层次'||父层'||'子层');
for i in c1 loop
if i.lv = 0 then
v1 := i.b;
end if;
dbms_output.put_line(v1||' '||i.lv||' '||nvl(i.a,' ')||' '||i.b);
end loop;
end;
level-1 层次,
A 父层,
B 子层
from t1 start with a is null connect by prior b =a
9i也可以用
这里的a 和b是什么。。?