LOOP
begin
fetch get_my_cursor
into N_MANAGECOM_ID, N_AGENTCODE_ID, N_ACC_PREM, N_ACC_STAND_PREM, N_ACC_LCONT_NUM, N_REAL_PREM, N_REAL_STANDPREM, N_REAL_LCONT_PREM, N_TOTAL_FYC;
EXIT WHEN get_my_cursor%NOTFOUND; SELECT SUM(NVL(D.FYC,0.0000)) INTO N_FACT_FYC
FROM LACOMMISION D
WHERE D.WAGENO IS NOT NULL
AND D.AGENTCODE_ID = N_AGENTCODE_ID
AND D.MANAGECOM_ID = N_MANAGECOM_ID
AND D.WAGENO = SUBSTR(in_date,1,6)
GROUP BY D.WAGENO, D.AGENTCODE_ID, D.AGENTCODE, D.MANAGECOM; UPDATE F_PersonalAGENTDayAchievement
SET ACC_LCONT_NUM = N_ACC_LCONT_NUM,
ACC_PREM = N_ACC_PREM,
ACC_STAND_PREM = N_ACC_STAND_PREM,
REAL_PREM = N_REAL_PREM,
REAL_STANDPREM = N_REAL_STANDPREM,
REAL_LCONT_PREM = N_REAL_LCONT_PREM,
REAL_FYC = N_TOTAL_FYC,
FACT_FYC = N_FACT_FYC
WHERE stat_date = TO_DATE(in_date, 'YYYYMMDD')
AND managecom_id = N_MANAGECOM_ID
AND agentcode_id = N_AGENTCODE_ID;
..... EXCEPTION
WHEN NO_DATA_FOUND THEN
Err_Row_Num := Err_Row_Num + 1;
pub.G_SAVEERR(in_crc_no,
sysdate,
'F_PersonalAGENTDayAchievement',
in_crc_no || '||' || N_ManageCom_ID || '||' ||
N_AgentCode_ID,
'无数据'); commit;
end;
end loop;
如上存储过程,现在问题是执行到 SELECT SUM(NVL(D.FYC,0.0000)) INTO N_FACT_FYC FROM LACOMMISION D ..
这句话时没有查询到记录,就跳到异常处理
我如何让SELECT 语句在没有查询到数据的情况下继续执行下面的UPDATE 语句?
也就是说SELECT 查不到数据时不捕捉SELECT 中的异常,而UPDATE 异常要正常捕捉.
解决方案 »
- 新手疑问!帮忙个忙!
- 查看运行过程中的更新程序
- create database link 问题
- ORACLE字符串截取成数组
- 4G的二进制数据文件,可以用Oracle Direct Path导入么
- 请问大家哪里可以下载到Oracle数据库参考手册?
- 如何建立自动递增的主键列?
- 为什么我从excel中导入到oracle再导到delphi中的数据就是乱码了(是汉字)
- 有一个字段内容是数字和汉字 如何按照数字的大小排序
- Ora-19504 Ora-00257 archivelog 不能存档,明明有空间却报空间不足
- oracle grouping()统计问题请教
- 求一sql,某一字段值相同取一个,不同则相加
begin select ....EXCEPTION
WHEN NO_DATA_FOUND THEN
不做任何处理
WHEN OTHERS
RAISE
END
WHEN NO_DATA_FOUND THEN
不做任何处理
WHEN OTHERS
RAISE
END
如果变量 = 1 做你自己的select into ,继续执行update 二,异常可以嵌套,但是你少了一个too_many_rows的异常处理,假定你不会存在查出来多条
EXCEPTION
WHEN NO_DATA_FOUND THEN
begin
--做你的update;
exception
when update异常 then
--做你的update异常处理
end;
那你知不知道只要出了NO_DATA_FOUND异常,你后面的update永远不会执行?
你回去好好补一下SQL,sum是求组里的和,他后面有group子句,分出来几组就有几行,你扫一眼SQL就能看出来他表里的数据刚好只能分一组?
BEGIN
SELECT ....
EXCEPTIOM
END
UPDATE......
难道会不执行后面的UPDATE 语句吗? 不会吧
加在begin end块里的exception肯定不会影响块外面的代码,那是我眼花,道歉