摘要:C# - 無法指出的錯誤發生了 Oracle 錯誤,但無法從 Oralce 擷取錯誤訊息。
這陣子一直在熟悉 dot Net 與 Oracle 之間的運用,一般來說都會下「Select * From TableName」,並丟到使用 dot Net 所提供的方式去產生結果,並且再把結果及指定給 DataGridView,結果卻發生「無法指出的錯誤發生了 Oracle 錯誤,但無法從 Oralce 擷取錯誤訊息。」,一時間完全不了解這是啥問題!? 上網找了一下,網友所遇到的問題及解答與自己所出錯方向不是很相同。之後,看了一下 TableName 的 Schema 後,看到了這樣的欄位型態「Timestamps」,直覺反應就是,會不會 dot Net 看不懂才會發生這樣的問題,結果跟公司老手請教後,發現原來是這樣...
錯誤的寫法:
Select * From TableName
修改後的寫法
Select TO_CHAR(UpdateTime, 'HH24MISS') as UpdateTime From TableName
這樣就正常了,所以看倌有跟我一樣的初學者的話,下次遇到這樣的問題可以看看自己所寫的 PL/SQL 中是否有欄位是需要轉換的...
參考:
Oracle Timestamps
oracle的timestamp類型使用
Oracle 資料型態有如同SQL2005後的timestamp嗎?
ORACLE DATE和TIMESTAMP數據類型的比較(一)
ORACLE DATE和TIMESTAMP數據類型的比較(二)