- 9i中有效的SQL語句在11g中仍然有效嗎?
- 11g中有沒有9i中沒有的新功能?
- 有效的9i SQL語句和11g中的同一語句之間是否存在行爲差異?
回答
這是在9i中有效的SQL語句仍是在11g中有效。 Oracle非常努力地確保向後兼容性。當然,在某些情況下,舊版本的Oracle接受實際上語法上無效的SQL語句,而不是在後面的版本正確引發錯誤時引發錯誤。但這是非常罕見的。
如果您對不同版本的Oracle中添加的功能感興趣,您可以通過SQL Language Improvements chapter of the New Features Guide和What's New in the SQL Language chapter of the SQL Reference查看。
如果您問的是行爲差異,那麼主要是依靠錯誤的假設。例如,如果查詢包含
GROUP BY
,大量人認爲他們不需要指定ORDER BY
子句。這從來不是甲骨文鼓勵的假設,但甲骨文碰巧爲了做GROUP BY
而對數據進行排序。當hash group by operation was added in 10.2時,Oracle不再總是將數據排序爲數據分組的副產品。這導致很多開發人員不得不通過代碼添加ORDER BY
子句。由於不同的優化器設置,其他SQL語句在11g中的表現會有所不同(特別是如果您從9i中的基於規則的優化器移動)。
是的,當然。看一看Oracle數據庫SQL語言參考的第一章,例如http://docs.oracle.com/cd/B28359_01/server.111/b28286/wnsql.htm#sthref5
你能舉一些例子嗎?因爲我對oracle 9i有相當不錯的知識:SQL,現在我正在通過oracle11g:SQL。但沒有找到任何區別。 – Shreedhar
10.1新數據類型BINARY_FLOAT,新函數REGEXP_LIKE,回收站。 11.1 PIVOT,虛擬列,11.2延遲段創建... –
是,這是在9i中有效仍然有效在11g
已經有場合以前有效的SQL語句SQL語句在更高版本中失效。例如,Oracle 8和Oracle 9之間的IIRC,mod
函數成爲非法用作中綴運算符;即select 12 mod 3 from dual
是Oracle 8,但不是在甲骨文9有效(select mod(12,3) from dual
是有效的兩個版本)
是否有11g中的新功能,無法獲得9i中
是的,當然,但列出它們會超出這個答案的範圍。
是在11g
有行爲上的差異,可能導致不必要的「效果」有效的9i的SQL語句和相同的語句之間存在行爲上的差異。兩個示例:
查詢優化器。在每個新版本中,有些查詢執行速度明顯較慢,這是因爲新查詢優化器可能會選擇與舊查詢優化器不同的低級計劃。
分組方式:在Oracle 9i之前,
group by
提供了排序結果。 (與order by
不完全相同,因爲order by
考慮到語言特定的順序,例如德語爲「L,M,N,O,Ö,P,Q」,而group by
沒有,但它很好足夠用於許多目的)。因此,許多開發人員在與group by
子句相同時忽略了order by
子句。這在Oracle 10g中發生了變化,顯然10g使用散列表而不是排序樹來進行分組。因此,有些計劃在10g中的表現與9i相比有所不同。 (注:它一直是一個壞主意,省略order by
當訂購測試結果正常)
- 1. mysql基本版和社區版本之間的區別
- 2. OpenSSL TLS/SSL版本之間的區別
- 3. IE6版本之間的區別
- 4. MySQL發佈版本之間的區別
- 5. DB2版本之間的區別
- 6. Apache Storm版本之間的區別?
- 7. Android SDK版本之間的區別
- 8. Java paintComponent覆蓋版本5和版本6之間的區別
- 9. IAB版本2和版本3之間的區別
- 10. 二進制版本和源代碼版本之間的區別?
- 11. VSE版本和Vyatta Core版本之間有什麼區別AMI
- 12. Oracle DATE和TIMESTAMP之間的區別
- 13. 從版本的工作區和最新版本之間有什麼區別
- 14. 如何區分MySQL GA版本和里程碑版本之間的區別
- 15. 藍牙配置文件的兩個版本之間的區別
- 16. Java的版本和JVM之間的區別究竟在哪裏?
- 17. ninject的標準和非web版本之間的區別
- 18. 用於Java EE的Indigo和Europa版本Eclipse之間的區別
- 19. 遞歸版本的「find」與不遞歸版本之間有什麼區別?
- 20. HikariCP 2.4.3(最新版本)和發佈版本2.3.8之間的區別?
- 21. Oracle客戶端和Oracle數據庫之間的確切區別
- 22. Oracle lnstant客戶端和Oracle客戶端之間的區別
- 23. Java JDK發佈之間的區別版本
- 24. openshift kubernetes版本和Google之間的區別kubernetes
- 25. iOS 8和以前版本之間自動轉換的區別
- 26. 發現maven war插件版本之間的區別?
- 27. Android版本名和versionNumber之間的區別
- 28. Linux內核版本之間的區別是什麼
- 29. Microsoft.Office.Interop。*版本12和14之間的區別是什麼?
- 30. SQL azure網頁和商業版本之間的區別?
會接受「是」作爲答案嗎? –
你問:「9i中有效的SQL語句在11g中仍然有效嗎?」你問:「11g中有沒有9i中沒有的新功能?」您是否問:「有效的9i SQL語句與11g中的同一語句之間是否存在行爲差異?」或者你在問別的嗎? –
@Justin Cave:謝謝巴迪。我無法制定問題。是的..你能給我所有你提到的問題的答案嗎? – Shreedhar