CURSOR CUR_AAC001 IS
SELECT DISTINCT AAC001 FROM TEST_IC40 ;
begin
--删除数据
execute immediate 'truncate table v_yanglaolixi';
open cur_aac001;
loop
fetch cur_aac001
into str1_aac001;
exit when CUR_AAC001%notfound;
open cur_lixi;
loop
cursor cur_lixi is
select aac001,to_number(substr(aae045),0,4)-1,aic410,aic412,aic413 from ic40 where aac001=:str_aac001;
open cur_lixi;
loop
fetch cur_li into str2_aac001,str_aae045,num_aic410,num_aic412,num_aic413;
exit when cur_lixi%notfound;
游标循环里不能定义游标吗?是不是定义语句都不能有?CURSOR CUR_AAC001 IS
SELECT DISTINCT AAC001 FROM TEST_IC40 ;
cursor cur_lixi is
select aac001,to_number(substr(aae045),0,4)-1,aic410,aic412,aic413, from ic40 where aac001=:str_aac001;
begin
--删除数据
execute immediate 'truncate table v_yanglaolixi';
open cur_aac001;
loop
fetch cur_aac001
into str_aac001;
exit when CUR_AAC001%notfound;
open cur_lixi;
loop
fetch cur_li into str_aac001,str_aae045,num_aic410,num_aic412,num_aic413;
我想在游标cur_lixi中用游标cur_aac001中的aac001字段,怎么实现?上面的都是有错的~~
希望大家帮个忙
SELECT DISTINCT AAC001 FROM TEST_IC40 ;
begin
--删除数据
execute immediate 'truncate table v_yanglaolixi';
open cur_aac001;
loop
fetch cur_aac001
into str1_aac001;
exit when CUR_AAC001%notfound;
open cur_lixi;
loop
cursor cur_lixi is
select aac001,to_number(substr(aae045),0,4)-1,aic410,aic412,aic413 from ic40 where aac001=:str_aac001;
open cur_lixi;
loop
fetch cur_li into str2_aac001,str_aae045,num_aic410,num_aic412,num_aic413;
exit when cur_lixi%notfound;
游标循环里不能定义游标吗?是不是定义语句都不能有?CURSOR CUR_AAC001 IS
SELECT DISTINCT AAC001 FROM TEST_IC40 ;
cursor cur_lixi is
select aac001,to_number(substr(aae045),0,4)-1,aic410,aic412,aic413, from ic40 where aac001=:str_aac001;
begin
--删除数据
execute immediate 'truncate table v_yanglaolixi';
open cur_aac001;
loop
fetch cur_aac001
into str_aac001;
exit when CUR_AAC001%notfound;
open cur_lixi;
loop
fetch cur_li into str_aac001,str_aae045,num_aic410,num_aic412,num_aic413;
我想在游标cur_lixi中用游标cur_aac001中的aac001字段,怎么实现?上面的都是有错的~~
希望大家帮个忙
CURSOR CUR_AAC001 IS
SELECT DISTINCT AAC001 FROM TEST_IC40 ;
begin
--删除数据
execute immediate 'truncate table v_yanglaolixi';
open cur_aac001;
loop
fetch cur_aac001
into str1_aac001;
exit when CUR_AAC001%notfound;
open cur_lixi;
loop---使用 for in ,不过尽量 不要使用游标循环,会降低性能
for cur_lixi in (
select aac001,to_number(substr(aae045),0,4)-1 aae045,aic410,aic412,aic413 from ic40 where aac001=:str_aac001) loop
str2_aac001:= cur_lixi.aac001;
str_aae045:=cur_lixi.aae045;
num_aic410:=cur_lixi.aic410;
num_aic412:=cur_lixi.aic412;
num_aic413:=cur_lixi.aic413
end loop;
我像你说的那样,声明了cur_lixi 行,执行速度还是很慢,跟以前的差不多