CURSOR CURJCJL IS
SELECT CH
,ZYCS
,CXS
,CLFLBH
FROM TBL_XD_TRANSINANDOUT_MX A
WHERE CSBH=I_CSBH
AND EXISTS (SELECT CH FROM TBL_XD_CLFBJLMX B WHERE A.CH=B.CH AND ZYJLBH=I_ZYJLBH)TBL_XD_TRANSINANDOUT_MX 3000行记录
TBL_XD_CLFBJLMX 2500行记录上面是我定义的游标,根据游标查询出的结果为1行
当游标循环取值时,即FETCH时,最快时4秒,最慢时达到30多秒,真的想不通是为什么,请高手指教。 OPEN CURJCJL; LOOP
--取得下一条记录
BEGIN
FETCH CURJCJL INTO STINTJCJL;
(这个地方超慢,记录也不是很多啊,汙!!!!!!)
END; IF CURJCJL%NOTFOUND THEN
EXIT;
END IF;
end loop
close curjcjl
SELECT CH
,ZYCS
,CXS
,CLFLBH
FROM TBL_XD_TRANSINANDOUT_MX A
WHERE CSBH=I_CSBH
AND EXISTS (SELECT CH FROM TBL_XD_CLFBJLMX B WHERE A.CH=B.CH AND ZYJLBH=I_ZYJLBH)TBL_XD_TRANSINANDOUT_MX 3000行记录
TBL_XD_CLFBJLMX 2500行记录上面是我定义的游标,根据游标查询出的结果为1行
当游标循环取值时,即FETCH时,最快时4秒,最慢时达到30多秒,真的想不通是为什么,请高手指教。 OPEN CURJCJL; LOOP
--取得下一条记录
BEGIN
FETCH CURJCJL INTO STINTJCJL;
(这个地方超慢,记录也不是很多啊,汙!!!!!!)
END; IF CURJCJL%NOTFOUND THEN
EXIT;
END IF;
end loop
close curjcjl
CURSOR CURJCJL IS
SELECT CH
,ZYCS
,CXS
,CLFLBH
FROM TBL_XD_TRANSINANDOUT_MX A
WHERE CSBH=I_CSBH
AND EXISTS (SELECT CH FROM TBL_XD_CLFBJLMX B WHERE A.CH=B.CH AND ZYJLBH=I_ZYJLBH);
STINTJCJL CURJCJL%rowtype;
begin
OPEN CURJCJL;
LOOP
--取得下一条记录
FETCH CURJCJL INTO STINTJCJL;
exit when CURJCJL%NOTFOUND;
end loop
close curjcjl;
end;