因为无法忍受Statement在多用户并发下引发的严重latch free等待事件,决定用PreparedStatement代替它,单条操作好写,但是,下边的情况,怎么办呢?
    一个事务有多个操作,比方说:
    先插入表A一条数据,接着更新表B的一个字段,最后,在表C里写一条记录。
    这种情况下,如何做呢?
    谢谢!

解决方案 »

  1.   

    是问题太深奥,还是说的不明白?
    先插入表A一条数据,接着更新表B的一个字段,最后,在表C里写一条记录——
    insert into a .....
    update b set xx = ……
    insert into c .....
    之间有什么冲突的么?
    对于更新值得操作我以前做的对动态的表、列进行更新操作,每次更新的值自然是要变化的、被绑定的变量1;主键字段对应的值也是动态变化的、也需要绑定。sql_str := ('update '||v_tblname||' t set '||v_colnum||' = (:1)  where t.主键 = (:2)');execute immediate sql_str using v_number,v_time;
      

  2.   

    估计楼主用JAVA吧~那也没问题啊, 
    一个PreparedStatement 对应一个insert, 操作完后, 
    再new一个PreparedStatement, 对应下一个insert, 操作完后, 再new.....最后finally{}里关闭全部的PreparedStatement和connection.
      

  3.   

    不好意思,是我描述不清楚,我的意思是在一个代码段里包含多个操作(就是一次SQL调用完成多个操作,是一个事务),这在java里用PreparedStatement怎么写;
        问题已经解决了,是多次用PreparedStatement。很久没有上了,没有看到大家的帖子;
        谢谢sozdream(),你是对的,虽然我没有看到你的帖子,还是谢谢你,谢谢大家帮忙!