我定义了一个存储过程,如下:
create procedure proc_update
is beginUPDATE B_T_RWPC AA set AA.ISENABLE = 2 WHERE SYSDATE > AA.PCENDTIME AND AA.ISENABLE = 1UPDATE B_T_USERTASK UT SET UT.ISCCOMPLETE = 2 WHERE UT.TASKID IN (SELECT BB."TaskID" FROM IEJU.V_TASKBYBATCH BB WHERE SYSDATE > BB.PCENDTIME AND BB.ISENABLE = 1)commit;
end;我希望这个存储过程里面的两个UPDATE语句,要么都执行成功,要么都执行不成功,一个成功另一个不成功就让它回滚
create procedure proc_update
is beginUPDATE B_T_RWPC AA set AA.ISENABLE = 2 WHERE SYSDATE > AA.PCENDTIME AND AA.ISENABLE = 1UPDATE B_T_USERTASK UT SET UT.ISCCOMPLETE = 2 WHERE UT.TASKID IN (SELECT BB."TaskID" FROM IEJU.V_TASKBYBATCH BB WHERE SYSDATE > BB.PCENDTIME AND BB.ISENABLE = 1)commit;
end;我希望这个存储过程里面的两个UPDATE语句,要么都执行成功,要么都执行不成功,一个成功另一个不成功就让它回滚
解决方案 »
- 批量解锁被lock的user
- Oracle动态查询列的问题
- 怎么使用ORACLE存储过程实现JDBC的数组插入(在线等)
- win2003下oracle9i数据库实例停止
- 急,有点难度,高手进来帮忙,有关列转行并统计...
- 怎样把oracle9i备份的数据导入到oracle7中啊?
- 一个对我比较难的sql查询,大家来看看。
- oracle导入数据库警告请教,急!!!!100分
- 救命啊!windows2000server+oracle9数据库重启后tnslistner无法启动!
- 这个问题求个说法哇
- oralce 随机生成一万个四位随机数(唯一)
- 求教关于Oracle varchar2字段查找效率的问题
is begin
if(
UPDATE B_T_RWPC AA set AA.ISENABLE = 2 WHERE SYSDATE > AA.PCENDTIME AND AA.ISENABLE = 1UPDATE B_T_USERTASK UT SET UT.ISCCOMPLETE = 2 WHERE UT.TASKID IN (SELECT BB."TaskID" FROM IEJU.V_TASKBYBATCH BB WHERE SYSDATE > BB.PCENDTIME AND BB.ISENABLE = 1))
commit;
else
rollback;
end;
create procedure proc_update
is
begin
UPDATE B_T_RWPC AA set AA.ISENABLE = 2 WHERE SYSDATE > AA.PCENDTIME AND AA.ISENABLE = 1
UPDATE B_T_USERTASK UT SET UT.ISCCOMPLETE = 2 WHERE UT.TASKID IN (SELECT BB."TaskID" FROM IEJU.V_TASKBYBATCH BB WHERE SYSDATE > BB.PCENDTIME AND BB.ISENABLE = 1)
commit;
exception
when others then
rollback;
end;