ORACLE 8I轉(zhuǎn)換數(shù)據(jù)到SQL Server

2010-08-28 10:50:09來源:西部e網(wǎng)作者:

  最近做一個項(xiàng)目的DOTNET版,說是升級,從ASP升為DOTNET,可因?yàn)轫?xiàng)目架構(gòu)原因,數(shù)據(jù)庫得從ORACLE轉(zhuǎn)為SQL SERVER...^_|| ,之前未使用過ORACLE,轉(zhuǎn)換數(shù)據(jù)過程中碰到了不小的麻煩。

  這中間過程之痛苦不再贅述,直接講我導(dǎo)數(shù)據(jù)流程及遇到的問題.如有講錯的地方,請大家指教~~

  一、前提: 因?yàn)槲沂菑腛RACLE數(shù)據(jù)庫服務(wù)器導(dǎo)出到目的機(jī)器,所以首先在目的機(jī)器上安裝ORACLE同一版本的客戶端,這樣做是為了在用MSSQL導(dǎo)入數(shù)據(jù)時能選擇ORACLE數(shù)據(jù)源。接下來我做的這個動作不知是否是必須的:ORACLE程序菜單中->net manage增加一個服務(wù)命名,填入源機(jī)器所在ORACLE庫服務(wù)名,主機(jī)名。

  二、在目的機(jī)器上安裝了PL/SQL Devloper 7 ,填入登錄源數(shù)據(jù)庫的用戶名,密碼,選擇數(shù)據(jù)庫,登入OK,這步主要查看ORACLE數(shù)據(jù)庫,為了知道哪些表或其它元素需要導(dǎo)出,并作參考。

  三、具體工作來了。

  (1)表:如果只需要導(dǎo)出表結(jié)構(gòu),用PL/SQL Devloper -->Tools -->Export Tables,選擇表,填入文件名,導(dǎo)出。

  存儲過程,視圖,函數(shù):用PL/SQL Devloper -->Tools -->Export User Objects ,選擇對象,填入文件名導(dǎo)出。

  (2)以上SQL文件導(dǎo)完,因PLSQL和SQL的些許不同,花了點(diǎn)心思把它們改成SQLSERVER上可以執(zhí)行的語句,在MSSQL的查詢分析器中執(zhí)行生成。

  (3)導(dǎo)出表結(jié)構(gòu)及數(shù)據(jù):在目的機(jī)器上數(shù)據(jù)源管理器中新建一個系統(tǒng)DSN或文件DSN,選擇ORACLE ODBC DRIVER ,數(shù)據(jù)源名稱和說明隨便填,服務(wù)名及用戶ID填ORACLE源數(shù)據(jù)庫相應(yīng)的服務(wù)名。 然后運(yùn)行MSSQL ->導(dǎo)入導(dǎo)出工具->選擇源數(shù)據(jù)中選擇”其它(ODBC數(shù)據(jù)源)”,選擇剛才建的系統(tǒng)DSN或文件DSN,填入登錄ORACLE庫的用戶名,密碼,進(jìn)入;接下來的選擇目標(biāo)源動作就和MSSQL自己的導(dǎo)入數(shù)據(jù)操作是一樣了。。。導(dǎo)完之后,記得更改相應(yīng)的字段類型,默認(rèn)值等等。。

  ORACLE到SQLSERVER需要注意的有:

  (1)表中字段類型的變化,number 變?yōu)閒loat,varchar2變?yōu)関archar;

  (2)ORACLE中沒有設(shè)置自增字段,有需要用到時,它是在sequence中建一個sequence,所以得查找ORACLE表中是否有這種對應(yīng),從而在MSSQL中設(shè)置自增字段。

  (3)在導(dǎo)出表結(jié)構(gòu)及數(shù)據(jù)中碰到了個問題:選擇數(shù)據(jù)源時,我選中了系統(tǒng)DSN,填入用戶名密碼,點(diǎn)下一步時,彈出了個錯誤窗口,提示:oci.dll找不到指定的模塊,點(diǎn)確定后提示用戶名密碼錯誤。。。上網(wǎng)搜索了N久,才找出解決方法:(1)ORACLE9i以上.Net Manager->本地->概要文件->ORACLE高級安全性->驗(yàn)證->去掉NTS這一項(xiàng)(因?yàn)槲沂褂玫氖荗RACLE8I所以沒試過這方法,但網(wǎng)上作者說可以);(2) 在ORACLE安裝目錄下搜索到Sqlnet.ora文件,加入一行: sqlnet.authentication-services=(none)保存,重啟機(jī)器,再試下從MSSQL導(dǎo)入導(dǎo)出工具連接源機(jī)器,OK。

  至此,ORACLE轉(zhuǎn)MSSQL的工作大部分就完成了。。希望對大家有點(diǎn)幫助,歡迎回貼指點(diǎn)錯誤及另好的方法。^_^

關(guān)鍵詞:SQLServerOracle

贊助商鏈接: