代码没有错误。
提醒以下:
1) 没有记录时,仍执行 fetch XXX into XXX,然后 执行 exit when daydata%notfound
2)如果有业务处理,放在 “exit when daydata%notfound;“ 的后面
提醒以下:
1) 没有记录时,仍执行 fetch XXX into XXX,然后 执行 exit when daydata%notfound
2)如果有业务处理,放在 “exit when daydata%notfound;“ 的后面
解决方案 »
- 请问TOAD和PLSQL各有什么优缺点。。该怎么对它们进行对比?
- ORACLE 包、函数、过程 问题
- 大家好,我想每天下午执行一次数据库更行,从一个表中导入到另一个表中,请问这个存储过程怎么写啊?
- 菜鸟问,去除union产生的重复记录问题?
- 关于oracle恢复?
- 一条SQL语句:where STATETIME=TO_DATE('2008-05-12','YYYY-MM-DD')
- EM错误:java.lang.Exception:: Connection refused
- sqlplus连oracle怎么这么慢啊???
- 如何获得系统时间的前一小时,有现成的函数嘛?
- goldengate oracle
- sqlplus环境下如何屏蔽sql语句系统交互啊?
- 请问怎样开发类似Microsoft公司的帮助系统中的INDEX功能(当然是集成到一个系统中,不是象帮助系统单独运行)?!
我的业务处理放在“exit when daydata%notfound;“ 的前面了,因为我业务处理中要对i赋值。使得游标查到的每一行都按照一定的条件进行处理,处理过程中始终要用data1,data2,data3,即是不断变化的。
请指教!
fetch daydata into data3;
之后:
if data3.gatherid!=data2.gatherid then
data1:=data3;
i:=1;--让它又进入循环
(do..)
else
i:=0;--又重新进入循环
(do..)
end if;
exit daydata%notfound;
end loop;
close daydata;
以上这样呢?请指教。
表1: 表2: 表3:
gatherid lineid data gatherid time lineid sum(data) time
1 1 3 1 20031205 20031205
2 1 2 2 20031205
3 1 4 3 20031204
4 2 5 6 20031206
5 2 . . 20031205
6 1 . . .
. .
. .
很多个gatherid属于一个lineid,
我如何将20031205日的所有lineid对应的表1的所有gatherid对应表2的data求出总和,保存在表3的sum(data)?
gatherid lineid data gatherid time lineid sum(data) time
1 1 3 1 20031205 20031205
2 1 2 2 20031205
3 1 4 3 20031204
4 2 5 6 20031206
5 2 . . 20031205
6 1 . . .
. .
. .
gatherid lineid data gatherid time lineid sum(data) time
1 1 3 1 20031205 20031205
2 1 2 2 20031205
3 1 4 3 20031204
4 2 5 6 20031206
5 2 . . 20031205
6 1 . . .
. .
. .
...
cursor c1 is select sum(fld) from 表1 group by lineidbegin
open c1;
loop
insert into 表3 (
end loop
感谢你的热情,请留下QQ,以后便于交流,THANKS·
fetch daydata into data1;
i:=1;
elsif i=1 then
fetch daydata into data2;
if data2.gatherid=data1.gatherid then
i:=2;
else
data1:=data2;
i:=1;
end if;
elsif i=2 then
fetch daydata into data3;
...
end if;
exit when daydata%notfound;以上这个循环fetch三次值,哪么有可能当中游标已结尾,exit when daydata%notfound;已失效了.再者每次fetch都是一条记录.
select lineid, sum(data), '20031205'
from tab1 a,tab2 b
where a.gatherid = b.gatherid
and b.time = '20031205'
group by lineid;
PLSQL中有没有这样一个函数(假设为X函数)
X(a,b,1,0)
如果a大于b则返回1,小于则返回0
????
PLSQL中有没有这样一个函数(假设为X函数)
X(a,b,1,0)
如果a大于b则返回1,小于则返回0