我們有一個包含複合鍵(varchar(64)和Date)的表。這在我們的其他測試環境中工作得很好,但在我們的驗收測試環境(和數據庫)中,當更新一行時,我們得到一個錯誤,說沒有行受到影響。就我們可以告訴環境中的所有內容而言,數據庫與其他數據庫相同。調用客戶端是.NET(使用ODP.NET),數據庫是Oracle 11g。有任何想法嗎?更新行時導致問題的日期類型的主鍵
回答
Oracle DATE數據類型內部存儲DATE和TIME。如果您使用WHERE子句進行更新,只指定DATE,則時間組件默認爲午夜時間。
因此,由於時間差異,您在WHERE子句中提供更新的DATE可能與表中存儲的DATE不匹配。
我認爲這可能是問題。你能否請你確認一下。
如果你只是想驗證日期組件,而不在它的時間價值,那麼你可以使用TO_CHAR函數只得到它在這裏 -
UPDATE ... SET ... WHERE TO_CHAR( SYSDATE,'DD-MON-YYYY')= '10 -DEC-2014'
Oracle建議「不要使用TO_DATE函數char參數的DATE值。返回的DATE值的前兩位數字可能與原始char不同,具體取決於fmt或缺省日期格式「。 TO_DATE - http://docs.oracle.com/cd/B19306_01/server.102/b14200/functions183.htm – michaos
@michaos我很抱歉。我實際上打算使用TO_CHAR,以便只獲取日期組件作爲字符。我現在修改了評論。謝謝。 – Manish
@Manish忘了提及我們也在使用時間組件。 (事後看來,使用代理可能會更聰明。)無論如何,它必定是導致問題的一些設置,我們無法弄清楚。 – Rubio
- 1. 流利的nhibernate複合類映射導致更新和主鍵問題
- 2. 更新行並忽略導致主鍵約束的行?
- 3. SQL - SQLDataAdapter更新導致主鍵違規
- 4. SQL日期時間類型問題
- 5. 更新空類型日期
- 6. 更新面板導致的CSS問題
- 7. 日期驗證mvc3導致問題
- 8. 主題更新GUI導致異常
- 9. 由於時區差異而導致的日期問題
- 10. 日期類型SSIS的問題
- 11. char數據類型轉換爲日期時間數據類型導致超出範圍的日期時間值
- 12. 什麼是導致這種行爲,在我們的C#日期時間類型?
- 13. 強類型資源導致問題?
- 14. IE9文檔類型導致問題
- 15. 帶有AngularJS更新的引導日期選擇器問題
- 16. 主鍵+引發數據庫模式導致問題的複合主鍵
- 17. winnt.h導致問題更新後
- 18. 將日期時間2數據類型轉換爲日期時間數據類型導致超出範圍值
- 19. char數據類型轉換爲日期時間數據類型導致超出日期時間值
- 20. 問題與新的日期
- 21. 主義2.1 - 日期時間問題
- 22. Oracle DISTINCT忽略導致性能的主鍵索引問題
- 23. SSRS 2008問題日期類型參數
- 24. 如何更新日期類型列?
- 25. NPOI導出日期時間問題
- 26. 帶日期時間參數問題的ADO.NET更新命令
- 27. 在db表中更新日期時的問題
- 28. 帶日期導致問題的MySQL + PHP查詢
- 29. 由於多個日期字段導致的MySQL性能問題
- 30. 在websphere中導致的日期格式問題
可以包含完整的oracle版本(11.nnn)和CREATE TABLE和INSERT INTO語句 – davegreen100