我想把c_Pickup这个游标的一行赋给r,怎么赋呢?
代码如下 TYPE QuickCur_Type IS REF CURSOR;
c_Pickup QuickCur_Type;
r c_Pickup%rowtype; if vBinUsage = PWM_DEF.BinUsagePickName then
open c_Pickup for
select m.*
from TPICKUP m
where m.f1 = 'a';
else
open c_Pickup for
select m.*
from TPICKUP m
where m.f1 = 'b';
end if; fetch c_Pickup into r;
while c_Pickup%Found loop
end loop;
close c_Pickup;
代码如下 TYPE QuickCur_Type IS REF CURSOR;
c_Pickup QuickCur_Type;
r c_Pickup%rowtype; if vBinUsage = PWM_DEF.BinUsagePickName then
open c_Pickup for
select m.*
from TPICKUP m
where m.f1 = 'a';
else
open c_Pickup for
select m.*
from TPICKUP m
where m.f1 = 'b';
end if; fetch c_Pickup into r;
while c_Pickup%Found loop
end loop;
close c_Pickup;
select d.f2, d.*
from TPICKUP m, tpickupdtl d
where m.num = d.num and m.f1 = 'a';
R_emp EMP%ROWTYPE;这样声明是声明了一个表结构的一行,
但是我现在这个游标里取出来的数据是两个表甚至是多个表里的数据列呀……
TYPE QuickCur_Type IS REF CURSOR;
c_Pickup QuickCur_Type;
r c_Pickup%rowtype;
这部分肯定连编译都通不过的,因为c_Pickup 是不确定的。
不过看到你上面的语句,都是从一个表中取出来的,只是变量不一样,那就何必定义ref游标呢
只需要给游标加上一个参数就可以了,如下
cursor QuickCur_Type(v_f1 var_type(自己看看是什么类型)) is
select m.* from TPICKUP m where m.f1= v_f1;
c_Pickup QuickCur_Type;
r c_Pickup%rowtype; if vBinUsage = PWM_DEF.BinUsagePickName then
open c_Pickup('a');
else
open c_Pickup('b');
end if;
fetch c_Pickup into r;
while c_Pickup%Found loop
end loop;
close c_Pickup;
呵呵,应该可以了,你试一试