存储过程中怎样使用游标,这样写错在哪里??
create or replace procedure del_tab is
cursor mycur is
select clbh from xxfl where jgsj<=add_months(sysdate,-1);
begin
for var_clbh in mycur loop
delete from tpxx where tpid=var_clbh;
delete from xxfl where clbh=var_clbh;
delete from bjxx where clbh=var_clbh;
commit;
end loop
end;
create or replace procedure del_tab is
cursor mycur is
select clbh from xxfl where jgsj<=add_months(sysdate,-1);
begin
for var_clbh in mycur loop
delete from tpxx where tpid=var_clbh;
delete from xxfl where clbh=var_clbh;
delete from bjxx where clbh=var_clbh;
commit;
end loop
end;
解决方案 »
- 有用过OCITransStart()的吗?
- Oracle两个日期类型字段怎么比较大小
- oracle数据库检查点:数据库写程序(DBWR)检查点完成的次数,以及服务器请求数据库写程序检查点数
- 高手进来!在线等待阿===安装OAS出现的问题
- oracle表空间相关问题,在线等!!!
- 请问自动递增的数据类型是什么名字?如何设置步长?
- oracle客戶端配置問題
- 如何启动iSQL*Plus?
- 如果rbs表空间被误删除,如何恢复。
- 有关Tablespace问题
- 如何使用oracle导入以前创建的数据库实例数据文件!!
- ORA-12514: TNS: 监听进程不能解析在连接描述符中给出的 SERVICE_NAME
cursor mycur is
select clbh from xxfl where jgsj<=add_months(sysdate,-1);
begin
for var_clbh in mycur loop
delete from tpxx where tpid=var_clbh.clbh;
delete from xxfl where clbh=var_clbh.clbh;
delete from bjxx where clbh=var_clbh.clbh;
commit;
end loop
end;
警告: 创建的过程带有编译错误。
IS
CURSOR mycur
IS
SELECT clbh
FROM xxfl
WHERE jgsj <= ADD_MONTHS (SYSDATE, -1);
BEGIN
FOR var_clbh IN mycur
LOOP
EXIT WHEN var_clbh%NOTFOUND; DELETE FROM tpxx
WHERE tpid = var_clbh.clbh; DELETE FROM xxfl
WHERE clbh = var_clbh.clbh; DELETE FROM bjxx
WHERE clbh = var_clbh.clbh;
END LOOP COMMIT;
END;
IS
CURSOR mycur
IS
SELECT clbh
FROM xxfl
WHERE jgsj <= ADD_MONTHS (SYSDATE, -1);
BEGIN
FOR var_clbh IN mycur
LOOP
EXIT WHEN var_clbh%NOTFOUND; DELETE FROM tpxx
WHERE tpid = var_clbh.clbh; DELETE FROM xxfl
WHERE clbh = var_clbh.clbh; DELETE FROM bjxx
WHERE clbh = var_clbh.clbh;
END LOOP;
COMMIT;
END;