cursor的定义部分当然不会执行了。当你open curso的时候才会执行cursor的查询语句。
解决方案 »
- 菜鸟请教挂载问题?指导下:alert_oradb.log怎么看?
- 如何根据名称获取变量值
- Oracle中有没有象Sql Server里的事件跟踪器
- 求求各位了!!!帮我一把!!!
- 请教:ADO连接Oracle数据库问题,在线等
- 请问怎么把我的一些数据导出到另外一个机器上
- oracle8i中sql查询的问题。
- 在LINUX9.0上安装ORACLE9i时,当跳到UNIX Group Name时,不论你填还是不填,点下一步是都会报错!
- 高分:linux7.3下oracle8.1.7如何配置JDBC?
- oracle触发器中如何获取应用系统用户名?
- tns 紧急求救:服务里面没有oracletns 一项,从那里运行??
- 我在两台机器上安装了Oracle8.1.7,均是企业版,如何实现两台机器数据库的对连?能否请高手列出详细步骤?
fetch CUR1 into 变量
close CUR1
……
open CUR1; loop
FETCH CUR1 INTO CPBH1, SL1; IF (CUR1%FOUND) THEN
open CUR2; loop
FETCH CUR2 INTO SBBH1, GS10, GS20, GSBH10; IF (CUR2%FOUND) THEN
insert into MIS.T_5223
(SBBH, DDBH, GSBH, CPBH, GS1, GS2)
values(SBBH1, IN1, GSBH10, CPBH1, GS10, GS20 * SL1); commit;
ELSE
EXIT;
END IF;
END LOOP; CLOSE CUR2;
ELSE
EXIT;
END IF;
END LOOP; CLOSE CUR1;
这是我的后续的程序(一小段),没什么语法错误,怎么调试的时候,(CUR1%FOUND) 和(CUR2%FOUND) 等条件总不满足,也就是说,游标是空的。我写的那些插入、查询(也就是我的执行部分)语句就跳过去了,循环一进入就从EXIT跳出去了。这真是莫名其妙啊!
LOOP
FETCH CUR1 INTO CPBH1, SL1;
EXIT WHEN CUR_CUR1%NOTFOUND;
END LOOP;
fetch CUR1 INTO CPBH1, SL1;
while cur1%found
loop
end loop;
CURSOR CUR1(C_INT VARCHAR2)
IS
SELECT distinct CPBH, SL
FROM MIS.T_5211
where NO = C_INT
order by CPBH;然后用的时候.以参数的形式传递
OPEN CUR1(IN1);
LOOP
FETCH CUR1 INTO CPBH1, SL1;
EXIT WHEN CUR_CUR1%NOTFOUND;
END LOOP;
使用动态游标的效率比较好。
type cur_type is ref cursor;
c_mycur cur_type;
...
begin
open c_mycur for select ...
loop
exit when
...
end loop;
close c_mycur;
...
end;