基礎資料所對應的型別不同
在Oracle中有一些基礎型別與Sqlserver中名字一樣,但是所存盤的資料格式不同,Date型別在Oracle中精確到秒,在Sqlserver中只能精確到天
表的結構
Oracle中所有的表都有一個共同的欄位,rowid這是在物理上存在的,記錄了每一條記錄的行位置,rownum 是邏輯上的,根據排序方式的不同會出現不同的rownum,因為Oracle的這個特性,經常在進行一些crud操作的時候會通過rowid來進行,導致在轉資料庫的時候會遇到各種麻煩,所以我建議各位不管是使用哪一種資料庫最好是使用標準sql,并且不要太依賴某種資料庫的特性,我開始是想通過row_number()加with as 去代替rowid,但是總會出現一些奇怪的問題,你前一次查詢的id,重新進入資料庫操作的時候改變的是另外一條記錄,最后的解決方式我把每一張表都添加上了rowid
Oracle的to_date,to_char方法
在轉Oracle資料庫的時候這兩個方法出現了很多次,看他們的名字就知道是干什么的,Sqlserver中沒有這樣的方法,但是有conver,cast方法這兩個方法可以實作Oacle兩個方法的所有功能
Oracle的NVL方法可以用isnull代替
在Oracle中子查詢陳述句可以有order by,而在sqlserver需要添加top()函式
Oracle比sqlserver的優勢
我個人覺得oracle的優勢在他的圖形用戶界面,雖然長相不好,但卻實用,如果有失誤的操作還能夠rollback,匯出資料時也很方便,在把oracle資料遷移到sqlserver時只要關注兩個資料庫之間資料型別的差異,不用擔心oracle的資料問題,可以一鍵查詢提出成檔案,而sqlserver操作起來反而復雜,我還沒有找到匯出sqlserver sql檔案的方法,
資料庫轉換需要注意的幾個點:
1:基礎資料之間的差異,在不同的資料中相同名字的資料型別可能存的值存在某些差異,我也沒有弄清有哪些型別,但是這是一個需要注意的點
2: 某些資料庫獨有特性在轉換時要面向整體去設計
3:不同資料庫所用sql也有不同,但總能找到替代的方法,一定要用心
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/28236.html
標籤:Oracle
上一篇:ORACLE資料庫中執行計劃出現INTERNAL_FUNCTION一定是隱式轉換嗎?
下一篇:基于SCN增量恢復DG同步
