各位大虾们:
     开发环境为VisualStudio 2008 + ORACLE 11.0G ,要实现一个存储过程,先用游标查询一张A,然后将与A表的子表K内的ID为AID信息查询完整后于B表逐行匹配匹配,成功及对B表进行操作,同时在更新A表内容与C表生成一条记录,匹配不成功则不更新A表和B表,同时将错误信息写入临时表T,游标循环完成后则返回临时表T和C表的新增的记录;要求整个游标的循环的过程为一个事务,请问这种带游标和事务的存储过程怎么写比较好。

解决方案 »

  1.   

    事务开始于一个DML语句,
    当发生以下情况时,事务结束:
    1. COMMIT/ROLLBACK
    2. 执行了DDL或DCL语句
    3. 用户主动断开数据库连接。
    4. 数据库服务器宕机。可以在PL/SQL中使用SAVEPOINT来控制事物。
    在一个PL/SQL块中从一个SAVEPOINT到另一个SAVEPOINT,可以定义事务。
    使用SAVEPOINT命令可以把事务分解为多个单元,这样一个PL/SQL块中,有些单元可以被提交,有些可以被回滚。
      

  2.   

    概念都不一样,事务,有涉及到表的相关操作如delete,update 都建议带上事务的处理
    游标,存储过程.这些你去看一下书吧!
      

  3.   

    存储过程最后的时候加上COMMIT
    在EXCEPTION里加上ROLLBACK