我們正在開發一個將其數據存儲在數據庫中的獨立應用程序。我們使用數據集和TableAdapters與數據庫進行通信。其中一個基本要求是應用程序能夠使用SQL Server,Oracle和MySQL。爲此,我們使助教供應商中的查詢獨立。我們使用ODBC提供程序。Oracle NUMBER問題:將十進制轉換爲Int64轉換
它適用於SQL Server和MySQL,但對於Oracle我們有問題。我們無法克服的其中一個問題是十進制到Int64的轉換錯誤。
Oracle表使用的系統ID(自動增量字段),因爲它似乎被映射到十進制數(38)。但是,我們在DataSet/TA中使用Int64/long,因爲SQL Server和MySQL使用BIGINT。 (請注意,該數據集的TableAdapter從一開始就SQL Server架構,其中自動生成的。)
我們正從甲骨文一個數值時,因爲它返回一個小數對象中獲取轉換異常。
DbCommand getIDcmd = connection.CreateCommand();
getIDcmd.CommandText = "select LAST_ID from SEQUENCE_ID";
sequenceID = (Int64)getIDcmd.ExecuteScalar(); // we get a cast exception here returns decimal
請注意,我們一直試圖降低在Oracle中精度數(例如NUMBER(10))爲我們與其他論壇條目,但沒有運氣看到。
這是一個ODBC問題嗎?如果我們轉移到其他提供商將解決問題?