【发布时间】:2013-12-25 21:17:47
【问题描述】:
在 Oracle 10g 中,我已经尝试过,但编译时遇到问题。我不明白问题出在哪里。请帮忙...
create or replace procedure get_degree(ver char) as
declare
type edge_data is record
(
vertex1 varchar2(10),
vertex2 varchar2(10)
);
ed edge_data;
type e_d_t is table of edge_data index by pls_integer;
edt e_d_t;
n integer;
deg integer;
begin
select max(rn) into n
from ( select rownum rn,vertex1,vertex2 from edges
where vertex1=ver or vertex2=ver
);
for i in 1..n loop
select vertex1,vertex2 into ed
from ( select rownum rn,vertex1,vertex2 from edges
where vertex1=ver or vertex2=ver
)
where rn=i;
edt(i):=ed;
if edt(i).vertex1=ver then
select degree into deg from vertices
where ver_name=edt(i).vertex2;
dbms_output.put_line(edt(i).vertex2||'='||deg);
else
select degree into deg from vertices
where ver_name=edt(i).vertex1;
dbms_output.put_line(edt(i).vertex1||'='||deg);
end if;
end loop;
end;
/
警告:程序创建时出现编译错误.....
【问题讨论】:
标签: database oracle plsql oracle10g plsqldeveloper