关于count(*)的返回结果为-1,真的会出现吗

commanddos 2008-02-18 11:45:31
今天朋友说他在存储过程中使用到了count函数,可得到的结果是-1,我不太相信,什么时候会出现这个情况
他是这样写的,有兴趣的帮看一下
CREATE OR REPLACE PROCEDURE MEDADM.DAY_ADT2 (STARTDATE DATE, ENDDATE DATE) AS
CURSOR r_cur3 IS
SELECT PATS_IN_HOSPITAL.DEPT_CODE,PAT_VISIT.IDENTITY,
COUNT(PATS_IN_HOSPITAL.PATIENT_ID) in_hospital_num,
SUM(DECODE(PATS_IN_HOSPITAL.PATIENT_CONDITION,'1',1,'2',1,0)) CRITICAL
FROM PAT_VISIT,PATS_IN_HOSPITAL
WHERE (PAT_VISIT.PATIENT_ID = PATS_IN_HOSPITAL.PATIENT_ID ) and
(PAT_VISIT.VISIT_ID = PATS_IN_HOSPITAL.VISIT_ID )
GROUP BY PATS_IN_HOSPITAL.DEPT_CODE,
PAT_VISIT.IDENTITY;

row_rec3 r_cur3%ROWTYPE;

OPEN r_cur3;
LOOP
FETCH r_cur3 INTO row_rec3;
EXIT WHEN r_cur3%NOTFOUND OR r_cur3%NOTFOUND IS NULL;
IF row_rec3.dept_code IS NOT NULL THEN
IF row_rec3.identity IS NULL THEN
row_rec3.identity:='其他';
END IF;
UPDATE DEPT_ADT_DAY SET
bed_used_num=row_rec3.in_hospital_num WHERE (DEPT_ADT_DAY.st_date=startdate) and
(DEPT_ADT_DAY.dept_code = row_rec3.dept_code) AND
(DEPT_ADT_DAY.identity = row_rec3.identity);
IF SQL%NOTFOUND OR SQL%NOTFOUND IS NULL THEN
INSERT INTO DEPT_ADT_DAY (st_date,
dept_code,
identity,
adm_outp_num,
from_other_dept_num,
from_other_hospital_num,
discharge_normal_num,
trans_dept_num,
trans_hospital_num,
died_num,
bed_used_num)
VALUES (startdate,
row_rec3.dept_code,
row_rec3.identity,0,0,0,0,0,0,0,
row_rec3.in_hospital_num);
END IF;
UPDATE DEPT_LOAD_DAY SET
critical_num=critical_num+row_rec3.critical
WHERE (DEPT_LOAD_DAY.st_date=startdate) and
(DEPT_LOAD_DAY.dept_code = row_rec3.dept_code);
IF SQL%NOTFOUND OR SQL%NOTFOUND IS NULL THEN
INSERT INTO DEPT_LOAD_DAY (st_date,
dept_code,
critical_num)
VALUES (startdate,
row_rec3.dept_code,
row_rec3.critical);
END IF;
END IF;
END LOOP;
CLOSE r_cur3;

不胜感激
...全文
466 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
wolf004 2008-02-18
  • 打赏
  • 举报
回复
理论上应该不会出现-1吧,如果没有记录的话.也应该是0.
你可以把这个row_rec3.in_hospital_num这个值打出来先看看...
chzhao555 2008-02-18
  • 打赏
  • 举报
回复

COUNT(PATS_IN_HOSPITAL.PATIENT_ID) in_hospital_num,

这里中间要个into吧! 我也这两天刚学存储过程! 不过我觉得应该要有个into

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧