oracle的兩個bug
前一陣子在網上查資料,看到了一個關於oracle日期型別的小bug。
SQL> select * from v$version;
BANNER
----------------------------------------------------------------
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Prod
PL/SQL Release 10.2.0.1.0 - Production
CORE10.2.0.1.0 Production
TNS for 32-bit Windows: Version 10.2.0.1.0 - Production
NLSRTL Version 10.2.0.1.0 – Production
[@more@]SQL> select 1 from dual where to_char(sysdate - 733021,'yyyy-mm-dd bc')=to_char(sysdate - 733022,'yyyy-mm-dd bc');
1
----------------------
1
也就是說sysdate – 733021與sysdate – 733022是相等的。我們都知道的,日期減一的話就是減少一天,而上面的例子中兩者卻是相等的。
SQL> select to_char(sysdate - 733021,'yyyy-mm-dd bc') from dual;
TO_CHAR(SYSDATE-733021,'YYYY-M
------------------------------
0000-00-00 00
SQL> select to_char(sysdate - 733022,'yyyy-mm-dd bc') from dual;
TO_CHAR(SYSDATE-733022,'YYYY-M
------------------------------
0000-00-00 00
問題就是出在了這個0000年上了。實際上是不存在0000年的,公元前一年接下來就是公元一年了。而oracle資料庫中卻引入了0000年。不大清楚為什麼oracle要引入0000年。
在我的這個版本的資料庫,上面的SQL不會有問題,而在一些其他的版本,上面的查詢是會報錯誤的,錯誤的 大概就是年度不能為0吧 ,錯誤號記不不清楚了。
這只是一個小問題,一般說來沒什麼影響。
有個同事發現的9i中的分割槽表的bug就十分弱智了,如果一個對不規則分割槽的訪問透過迴圈中的繫結變數的SQL執行,那麼在那些不規則的分割槽上將不會得到正確的結果。正確的SQL居然得到的錯誤的結果。還好,這個關於分割槽表的bug在10g中已經糾正了。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/8394333/viewspace-989979/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 遇到ASM的兩個BUGASM
- oracle的一個bugOracle
- React兩個bug踩坑React
- [BUG反饋]兩個關於釋出文章的BUG
- oracle 10.2.0.2.0的一個BUGOracle
- 【譯】Ringbahn的兩個記憶體Bug記憶體
- Delphi中兩個BUG的分析與修復 (轉)
- Oracle關於nvl的一個BugOracle
- 一個oracle查詢引起的bugOracle
- 一個oracle bug的簡單驗證Oracle
- oracle dataguard的兩個新特點。Oracle
- oracle create function的兩個例項OracleFunction
- 我常用的兩個ORACLE的檔案Oracle
- oracle 10gR2 RAC 的一個BUGOracle 10g
- oracle9i replace clob 的一個bugOracle
- oracle兩個 retention 引數Oracle
- 兩個Oracle配置問題的記錄Oracle
- 關於oracle的jobs的兩個檢視Oracle
- 遇著個oracle 10g bugOracle 10g
- Oracle groupby的bugOracle
- iOS 10.2修復兩個超煩人的Bug 續航猛增iOS
- Oracle啟動兩個監聽Oracle
- Oracle Dataguard Standby Redo Log的兩個實驗Oracle
- 10g bug 偵聽掛起 兩個偵聽程式
- oracle bugOracle
- Oracle9i高階複製的一個bugOracle
- Spring Boot 中的同一個 Bug,竟然把我坑了兩次!Spring Boot
- Oracle srvctl的小bugOracle
- Oracle Debug ---- oradebugOracle
- Oracle 12c 兩個新特性Oracle
- oracle insert兩個關聯表Oracle
- Oracle計算兩個日期之間的天數Oracle
- Oracle 10g 兩個監聽程式的故障Oracle 10g
- ORACLE Active dataguard 一個latch: row cache objects BUGOracleObject
- 關於Oracle中重啟資料庫的一個bugOracle資料庫
- 點選label執行兩次的bug
- Oracle bug的手工修復Oracle
- oracle ucm 的嚴重bugOracle