ODP.NET调用存储需要使用事务
                                                            生活随笔
收集整理的這篇文章主要介紹了
                                ODP.NET调用存储需要使用事务
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.                        
                                今天發生在用ODP.NET調整一個存儲過程時發生了兩個奇怪的錯誤。
- ORA-08103: object no longer exists?
 - ora-01410: invalid rowid
 
網上都說是索引塊有錯誤什么的,我索引也重建,表也重建了,但還是不行。
奇怪的是我直接測試存儲過程是有結果的。
后來發現是存儲過程中使用了臨時表,而我在代碼中又沒有使用事務,當我加上事務后程序就正常了。 正常的代碼像下面這樣:
using (var conn = SqlHelper.GetConnection() as OracleConnection){conn.Open();var trans = conn.BeginTransaction();var cmd = conn.CreateCommand();cmd.CommandText = "PKG_LIMIT_RESULT.OVERVIEW_RESULT_LIST";cmd.CommandType = CommandType.StoredProcedure;var p1 = new OracleParameter("P_DATA_SET", OracleDbType.RefCursor, ParameterDirection.Output);var p2 = new OracleParameter("P_BEG_DATE", OracleDbType.Varchar2, "2012-10-08", ParameterDirection.Input);var p3 = new OracleParameter("P_END_DATE", OracleDbType.Varchar2, "2012-11-17", ParameterDirection.Input);//.....cmd.Parameters.Add(p1);cmd.Parameters.Add(p2);cmd.Parameters.Add(p3);//.......var reader = cmd.ExecuteReader();while (reader.Read()){//Console.WriteLine(reader.GetInt32(0));}reader.Dispose();                 trans.Commit(); }  
轉載于:https://www.cnblogs.com/jmax/archive/2013/02/27/2934994.html
總結
以上是生活随笔為你收集整理的ODP.NET调用存储需要使用事务的全部內容,希望文章能夠幫你解決所遇到的問題。
                            
                        - 上一篇: 算法导论课后习题解析 第四章 上
 - 下一篇: 创维电视机756151现在这个电视机多少