Oracle轉SqlServer

 基礎數據所對應的類型不一樣sql

   在Oracle中有一些基礎類型與Sqlserver中名字同樣,可是所存儲的數據格式不一樣,Date類型在Oracle中精確到秒,在Sqlserver中只能精確到天數據庫

   表的結構          oracle

    Oracle中全部的表都有一個共同的字段,rowid這是在物理上存在的,記錄了每一條記錄的行位置,rownum 是邏輯上的,根據排序方式的不一樣會出現不一樣的rownum,由於Oracle的這個特性,常常在進行一些crud操做的時候會經過rowid來進行,致使在轉數據庫的時候會遇到各類麻煩,因此我建議各位無論是使用哪種數據庫最好是使用標準sql,而且不要太依賴某種數據庫的特性。我開始是想經過row_number()加with as 去代替rowid,可是總會出現一些奇怪的問題,你前一次查詢的id,從新進入數據庫操做的時候改變的是另一條記錄,最後的解決方式我把每一張表都添加上了rowid函數

    Oracle的to_date,to_char方法sqlserver

    在轉Oracle數據庫的時候這兩個方法出現了不少次,看他們的名字就知道是幹什麼的,Sqlserver中沒有這樣的方法,可是有conver,cast方法這兩個方法能夠實現Oacle兩個方法的全部功能設計

    Oracle的NVL方法能夠用isnull代替server

    在Oracle中子查詢語句能夠有order by,而在sqlserver須要添加top()函數    排序

 

Oracle比sqlserver的優點it

    我我的以爲oracle的優點在他的圖形用戶界面,雖然長相很差,但卻實用,若是有失誤的操做還可以rollback,導出數據時也很方便,在把oracle數據遷移到sqlserver時只要關注兩個數據庫之間數據類型的差別,不用擔憂oracle的數據問題,能夠一鍵查詢提出成文件,而sqlserver操做起來反而複雜,我尚未找到導出sqlserver sql文件的方法。ast

數據庫轉換須要注意的幾個點:

  1:基礎數據之間的差別,在不一樣的數據中相同名字的數據類型可能存的值存在某些差別,我也沒有弄清有哪些類型,可是這是一個須要注意的點

  2: 某些數據庫獨有特性在轉換時要面向總體去設計

3:不一樣數據庫所用sql也有不一樣,但總能找到替代的方法,必定要用心

相關文章
相關標籤/搜索