Oracle11g的SQL支援程式碼中全形字元代替半形字元

qdrzq發表於2014-05-27

最近,公司開發部門資料庫遷移到新伺服器上面,資料庫原來使用Oracle10g,新伺服器上面裝的是Oracle11g,具體版本11.2.0.1
結果,開發同事不經意間發現,SQL語句中使用全形的括號竟然語法檢查也是可以通過的.
比如:
select (col_Total1+col_Total2) from t_Test where rownum<10;
select (col_Total1+col_Total2) from t_Test where rownum<10;
這兩個語句都是合法的語句,而且執行結果一致.

進一步測試,不光是()()可以混用,而且
select to_single_byte('*') from dual;
select to_multi_byte('*') from dual;
滿足這樣的配對組合都可以互換使用.

應該是11.1.0.7支援的.
因為這樣寫出來的SQL程式碼,產品釋出後,拿到Oracle10g的環境下執行,可是通不過語法檢查的.目前尚未找到資料,不知道Oracle是否有能關閉此功能的設定(隱含引數).

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

相關文章