程序使用隐式游标和嵌套游标。而且我正在使用ROWTYPE进行抓取。但有些人却无法获取价值。我认为应该是因为它在嵌套游标中,所以它没有得到值。 (即,如果我没有获得价值,则在下面的第二个光标中,出现了问题)。
游标声明如下
cursor c1(begin_date varchar2, end_date varchar2)
IS
SELECT empno from table1 where report_DATE between begin_date and end_date;
cursor c2(emp_num number, begin_date varchar2, end_date varchar2)
IS
SELECT sum(tot_amt) as e_tot_amt
from table2 where report_DATE between begin_date and end_date
and empno = emp_num;
cursor c3(emp_num number, begin_date varchar2, end_date varchar2)
IS
SELECT sum(adj_amt) as e_adj_amt
from table3 where report_DATE between begin_date and end_date
and empno = emp_num;
gr1 c1%ROWTYPE;
gr2 c2%ROWTYPE;
gr3 c3%ROWTYPE;
下面是代码
gr1:=NULL;
for lr in c1(begin_date, end_date)
loop
gr2:= lr;
get_tot_amt;
get_adj_amt;
final_amt := g2.e_tot_amt + g3.e_adj_amt;
write the values
end loop
procedure get_tot_amt
is
begin
gr2:=NULL;
for lr in c2(gr1.emp_num, gr1.begin_date, gr1.end_date)
loop
gr2:=lr;
end loop;
end get_adj_amt
Problem is the Final_amount value is not calculating correctly. It showing as 0, but when i give the empno its giving the value. Please advise.
procedure get_adj_amt
is
begin
gr3:=NULL;
for lr in c3(gr1.emp_num, gr1.begin_date, gr1.end_date)
loop
gr3:=lr;
end loop;
end get_tot_amt