2011-03-23 208 views
1

我們最近升級了一個我們維護使用Oracle 11g的應用程序(.NET 2.0)。該應用程序使用MS企業庫2.0。我們發現,當調用database.ExecuteNonQuery(Oracle.DataAccess.Client.OracleCommand)方法時,它會在存儲過程期望一個參數爲數字但收到一個字符串時發生炸彈。這在升級之前沒有發生。如果我將該參數強制轉換爲Int,則不會收到錯誤。有沒有人遇到過這個問題?升級過程中可能會漏掉一些東西嗎?無論我們打到11g數據庫還是10g數據庫,都會出現此問題。Oracle 11g存儲過程參數問題

如果這個問題含糊不清,我很抱歉。

感謝您的幫助。

編輯:我忽略了提及,當調用ExecuteDataReader(處理數據類型的隱式轉換)時不會發生同樣的問題。

+0

當你說「炸彈」時,它是什麼?甲骨文? 。淨? MS企業庫?什麼是錯誤消息,錯誤號碼,調用堆棧等? – 2011-04-04 07:15:14

+0

收到Oracle「無效輸入字符串[]」錯誤。最後,我們搜索代碼並糾正任何參數類型不匹配。 – 2011-04-13 16:54:13

回答

2

你真的應該改變你的代碼,以便將正確的數據類型傳遞給存儲過程。

聽起來像他們最終執行此操作。

+0

改變代碼是一項重大任務,所以這是最後的手段。另外,它似乎並不一致。在一些方法中,不匹配不會導致錯誤,但在其他方法中,它會發生錯誤。另外,如果它正在執行db.ExecuteDataReader,它似乎沒有問題。任何其他想法? – 2011-03-25 13:41:12