不知道你说的是什么意思?难道是sql语句只在当前事务中有效?

解决方案 »

  1.   

    因为要执行很多sql,希望把它们当成一个事务来处理,最后决定是提交还是回滚,但是我不知道怎么开始一个事务,不知道关键字是什么,比如commit之类的
      

  2.   

    CREATE OR REPLACE PROCEDURE prc_name(...) AS
    BEGIN
      INSERT INTO...
      ...
      COMMIT;
    Exception
      WHEN OTHERS THEN
        ROLLBACK;
    END;
      

  3.   

    oracle中的事务是自动开始的, 执行一个sql时,就开始了一个事务, 直到commit
    或rollback语句执行,所有语句都属于一个事务, commit或rollback语句执行后,如果
    还有sql执行,就又开始了一个 事务。
      

  4.   

    oracle不用显式开始事务的
    要回滚create or replace procedure pro_testa as
    begin
        savepoint mystart;---start save point
        insert into tabela(id,name) values(1,'OK');
        commit;  <-----提交
        exception 
            when others then 
                rollback to mystart;       <--------如果出错则回滚 to mystart.
    endhttp://community.csdn.net/Expert/topic/3266/3266508.xml?temp=.5533258http://community.csdn.net/Expert/topic/3436/3436826.xml?temp=.569317
      

  5.   

    set transaction read  only //事务开始  (这样是只让一个事务'只读'或者你可以写成'只写')
    你可以在这个地方写过程或者游标等等...commit//事务的提交或者叫完成。
    rollback//事务的回滚或者叫撤消。
    当一个事务一开始后,如果不遇到这两句话,那么就一直是个事务集.