C#插入Oracle中Timestamp型別資料

Hoegh發表於2015-04-10
        在專案開發中,要求儲存毫秒精度的時間,C#中DateTime型別雖然有Millsecond屬性,但是插入Timestamp型別的Oracle資料列時,無法儲存毫秒資料。
以下是我的開發環境:
  • 作業系統:Windows
  • 開發工具:Visual Studio 2010
  • 開發語言:C#
  • 資料庫:Oracle 10.2.0.4

       在以前的專案中也遇到過類似問題,當時是採取儲存字串的方法來解決的。具體的,在程式的實體類中定義欄位型別為String,在資料庫中定義對應列為Varchar2(),透過呼叫DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff")語句來儲存毫秒精度時間。這樣做,功能可以實現,但是需要在存庫和讀庫時進行轉換,麻煩,想找到一個一勞永逸的解決辦法。     
       和弟兄們溝通後,認為既然DataTime儲存的有毫秒時間,但是儲存後卻丟失了,很有可能是和微軟的Oracle驅動(System.Data.OracleClient)有關,可以嘗試一下使用Oracle的官方驅動(Oracle.ManagedDataAccess.Client)。果然,更換驅動後,毫秒資料順利儲存,問題得到圓滿解決。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/30162081/viewspace-1561171/,如需轉載,請註明出處,否則將追究法律責任。

相關文章