总觉得我这2重循环有问题,execute immediate str; 位置错了?
BEGINopen cur_Table;
open cur_test;
loop --‘1
fetch cur_Table into v_table;
loop --‘2
fetch cur_test into v_a1,v_a2,v_a3,v_a4,v_a5,v_a6,v_a7;
if v_a1 = 1 then
str:= ' insert into ' ||v_table || ' values('||v_a2||','||v_a3||','||v_a4||','||v_a5||','||v_a6||','||v_a7||') ';
else
str:= ' update ' ||v_table || ' set MaxValue='||v_a2||', MinValue='||v_a3||', AvgValue='||v_a4||' where
DayHour='||v_a5||' and X0='||v_a6||' and Y0='||v_a7||' ';
end if;
--execute immediate str;
exit when cur_test%notfound;
end loop;
execute immediate str;
exit when cur_Table%notfound;
end loop;close cur_Table;
close cur_test;
BEGINopen cur_Table;
open cur_test;
loop --‘1
fetch cur_Table into v_table;
loop --‘2
fetch cur_test into v_a1,v_a2,v_a3,v_a4,v_a5,v_a6,v_a7;
if v_a1 = 1 then
str:= ' insert into ' ||v_table || ' values('||v_a2||','||v_a3||','||v_a4||','||v_a5||','||v_a6||','||v_a7||') ';
else
str:= ' update ' ||v_table || ' set MaxValue='||v_a2||', MinValue='||v_a3||', AvgValue='||v_a4||' where
DayHour='||v_a5||' and X0='||v_a6||' and Y0='||v_a7||' ';
end if;
--execute immediate str;
exit when cur_test%notfound;
end loop;
execute immediate str;
exit when cur_Table%notfound;
end loop;close cur_Table;
close cur_test;
解决方案 »
- 临时表问题
- 在ORACLE里写存储过程时,编译出现"无法将NULL值插入 ("SYS"."OBJ$"."NAME")"是怎么回事?
- 两数据库连接并可以导表中数据的问题
- 各位有把Oracle放到公网上,客户端通过ADSL访问的方式么??安全怎么保障??
- 怎么样从一个表中删掉与另一个表中字段相同的纪录
- oracle中 Schema.TableName,schema是怎么回事?
- sql能不能实现这样的连接
- 如何将数据导入库中(*.dmp)
- ORACLE 新用户权限分配问题! 请兄弟们指导! 急急急!
- 远程能链接orcale,但是服务器本地不行
- 自定义函数传入参数字符串大于2000报错问题如何解决
- Oracle的function如何能返回一个自定义的表
是不是 不應該放在底下?~ 你試驗下
end loop; 的下面?
放在 fetch底下 緊接著 看看
调试一下吧,是不是你的数据有问题 execute immediate str;
写在外面 表示你从第二层循环跳出后才执行.
写在注释的位置 表示每个cur_test 获取一条记录 就会执行一遍