Oracle - 隱式轉換與顯示轉換


狀態:不斷編輯完善中

 

隱式轉換的缺點:

  1. 使用顯示類型轉換會讓我們的SQL更加容易被理解,也就是可讀性更強,但是隱式類型轉換卻沒有這個優點。
  2. 隱式類型轉換往往對性能產生不好的影響,特別是左值的類型被隱式轉為了右值的類型。這種方式很可能使我們本來可以使用索引的而沒有用上索引,也有可能會導致結果出錯。
  3. 隱式類型轉換可能依賴於發生轉換時的上下文環境,比如to_date(sysdate, fmt),一旦上下文環境改變,很可能我們的程序就不能運行。
  4. 隱式類型轉換的算法或規則,以后Oracle可能改變,這是很危險的,意味着舊的代碼很可能在新的Oracle版本中運行出現問題(性能、錯誤等),顯示類型轉換總是有最高的優先級,所以顯示類型轉換沒有這種版本更替可能帶來的問題。
  5. 隱式類型轉換是要消耗時間的,當然同等的顯式類型轉換時間也差不多,最好的方法就是避免類似的轉換,在顯示類型轉換上我們會看到,最好不要將左值進行類型轉換,到時候有索引也用不上索引,還要建函數索引,索引儲存和管理開銷增大。

 總結:

  • Oracle 使用數據類型的優先級來決定隱式類型轉換,原則是將優先級低的轉換為優先級高的。
  • 隱式轉換發生在字段列上時將使索引失效。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM