真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

SQLServer2005如何移植到Oracle10g-創(chuàng)新互聯(lián)

這篇文章主要介紹“SQLServer2005如何移植到Oracle10g”,在日常操作中,相信很多人在SQLServer2005如何移植到Oracle10g問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”SQLServer2005如何移植到Oracle10g”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

為汕頭等地區(qū)用戶提供了全套網(wǎng)頁設計制作服務,及汕頭網(wǎng)站建設行業(yè)解決方案。主營業(yè)務為網(wǎng)站設計制作、成都網(wǎng)站制作、汕頭網(wǎng)站設計,以傳統(tǒng)方式定制建設網(wǎng)站,并提供域名空間備案等一條龍服務,秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務。我們深信只要達到每一位用戶的要求,就會得到認可,從而選擇與我們長期合作。這樣,我們也可以走得更遠!

由于目前OMWB僅支持SQLServer2000,根據(jù)官方網(wǎng)站的消息,OMWB的下一版會推出對SQLServer 2005的支持,所以在目前的情況下只能先把庫從SQLServer 2005移植到SQLServer 2000,這就是我們移植過程的第一步了。

SQLServer2005怎樣移植到Oracle10g

一、SQLServer 2005-->SQLServer 2000

一直以來,版本要降級都是很困難的,因為在新版本中必然會有些新的特性,而如果剛好湊巧你使用到了這些特性的話,在降級到低版本時就會碰到一些問題,在經(jīng)過幾次的嘗試后,總結而言,這個過程還是比較容易做的,畢竟是同樣的數(shù)據(jù)庫,再怎么樣也不會出太大的問題,不過也沒有像將庫從SQLServer 2000升級為SQLServer 2005那么簡單,整個移植過程這么進行:

1、基于SQLServer 2005的數(shù)據(jù)導出將表結構和數(shù)據(jù)導入到SQLServer 2000;

這步中需要注意的是默認情況下SQLServer會將表和視圖一起導入,在這里不要選擇視圖,否則導入到SQLServer 2000后有些視圖會變成表,選擇需要導入的表后基本上這步不會出現(xiàn)什么問題,可以完成表結構和數(shù)據(jù)的移植。

2、基于SQLServer 2005的生成腳本將視圖/函數(shù)/存儲過程移植到SQLServer 2000;

這步需要慢慢來,因為在視圖/函數(shù)/存儲過程中你可能使用到了一些SQLServer 2005的新特性,如果碰到這樣的情況,只能是手工進行修改,以使它完全符合SQLServer 2000的要求,盡管在生成腳本時你可以選擇生成的目標版本為SQLServer 2000,但還是會有部分腳本執(zhí)行是會出錯的。

在完成了SQLServer 2005到SQLServer 2000的移植后,就可以基于OMWB來把庫從SQLServer 2000移植到Oracle了,這步盡管有工具,還是會比較的麻煩,總結如下:

二、SQLServer 2000-->Oracle 10g

關于如何基于OMWB將庫從SQLServer 2000移植到Oracle 10g的操作步驟可參見此篇文檔:

大家現(xiàn)在從oracle官方站下的話可能會找不到sqlserver 2000的插件包,如果找不到的話可以從這里下載:

我在這里要總結的是基于OMWB將庫從SQLServer 2000移植到Oracle 10g后還需要手工做的一些事情,不要指望OMWB能無縫的幫你把庫從SQLServer移植到Oracle中,銀彈是不存在的,因此我們需要做些手工的工作完成庫的移植:

SQLServer2005怎樣移植到Oracle10g

1、移植表結構和數(shù)據(jù)可能會出現(xiàn)的問題;

表中字段的默認值/主鍵/外鍵/索引移植不過去,這些需要手工的進行補充;

2、移植視圖可能會出現(xiàn)的問題;

移植過去的視圖可能會出現(xiàn)各種語法錯誤的問題,這需要手工的修正,一般來說都是較為簡單的錯誤;

另外一種問題就是有些視圖可能會無法移植過去,這些視圖就只能在對比OMWB的移植報告后找出來手工的進行移植了。

3、移植函數(shù)/存儲過程可能會出現(xiàn)的問題;

移植過去的函數(shù)/存儲過程中可能仍然會有不少的語法問題,例如像SCOPE_IDENTITY()、REPLICATE、newid()這些OMWB不知道該怎么處理的函數(shù),還有像返回Table類型的這種函數(shù),這些都只能在移植后手工的來進行糾正,關于函數(shù)不同造成的語法錯誤的現(xiàn)象大家可以參看這篇文檔來做SQLServer和Oracle函數(shù)的對照:

移植過去的函數(shù)/存儲過程可能編譯是沒有問題,也就是Oracle認為沒有語法問題,但執(zhí)行起來卻會報錯,像字符串相加,經(jīng)過OMWB移植后有些字符串相加會替換成||,但是有些會遺漏,這個時候也只能手工來糾正這些錯誤了;

移植過去的函數(shù)/存儲過程在執(zhí)行過程中可能會出現(xiàn)某些表的主鍵值不能為空的現(xiàn)象,造成這種現(xiàn)象的原因多數(shù)為在SQLServer中該字段的默認值定義的為IDENTITY,但在Oracle中沒法賦予這樣的默認值,只能在插入的sql語句中加上對于主鍵字段的賦值,可采用sequence的方式來生成順序號;

移植過去的函數(shù)/存儲過程中如果其中的查詢語句是采用字符串的方式,然后動態(tài)執(zhí)行的話,這個時候的查詢語句就得手工修改為符合oracle的語法了,因為OMWB在移植時是不會對字符串形式的查詢語句來做處理的;

部分函數(shù)/存儲過程會由于OMWB確實無法處理,造成移植不到oracle,這個時候也必須參照OMWB的移植報告找出這些函數(shù)/存儲過程來手工移植了。

整個移植過程可能會碰到比上面所列出的更多的別的問題,可以看出整個移植過程確實需要耗費不小的工作量,但總體而言,完成的難度并不高。

其實真的是這樣嗎?當然不是,就算你完成了上面的移植工作,那也只能說表面看上去移植是完成了,很有可能會出現(xiàn)這個存儲過程語法等等都沒有問題了,但執(zhí)行的效果和SQLServer就是不一樣,這是為什么呢?可能會是因為Oracle和SQLServer在并發(fā)控制、事務機制上是不同的,而這會影響到程序調用時的sql的編寫、存儲過程的編寫等等,也就是說,在上面的移植過程的工作完成后,還得仔細檢查現(xiàn)在的sql語句/函數(shù)/存儲過程是否根據(jù)Oracle的機制達到了原來在SQLServer中期望的效果,只有做到這步的效果是一樣的,才可以說移植過程完成了。

到此,關于“SQLServer2005如何移植到Oracle10g”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續(xù)學習更多相關知識,請繼續(xù)關注創(chuàng)新互聯(lián)網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬嵱玫奈恼拢?/p>
本文題目:SQLServer2005如何移植到Oracle10g-創(chuàng)新互聯(lián)
轉載源于:http://weahome.cn/article/copcjh.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部