请问,在asp.net中向oracle数据库中插入多条类似如下的语句,也就是作为一个事务提交,为什么不行呢?难道非要用循环,一条一条插入吗?要是这样的话,第二句出错的话,第一句就不能回滚了:insert into tableA values('a','b');
insert into tableB values('c','d','e');
....

解决方案 »

  1.   

    我的意思是:
    OracleComm.CommandText = "insert into tableA values('a','b');insert into tableB values('c','d','e');insert into tableC values('x','y');"sqlserver2000这种方式提交是可以的
    oracle里这种方式是行不通的,不知道为什么
      

  2.   

    你要写自己的事务处理,如下(C#,具体你用的什么语言再看着改吧);
       OracleConnection myConnection = new OracleConnection(myConnString);
       myConnection.Open();   OracleCommand myCommand = myConnection.CreateCommand();
       OracleTransaction myTrans = myConnection.BeginTransaction();
       myCommand.Transaction = myTrans;   try
       {
         myCommand.CommandText = "insert into tableA values('a','b')";
         myCommand.ExecuteNonQuery();
         myCommand.CommandText = "insert into tableB values('c','d','e')";
         myCommand.ExecuteNonQuery();
         myCommand.CommandText = "insert into tableC values('x','y')";
         myCommand.ExecuteNonQuery();
         myTrans.Commit();
       }
       catch(Exception e)
       {
         myTrans.Rollback();
       }
       finally
       {
         myConnection.Close();
       }