top
Loading...
ORACLE8I轉換數據到SQLSERVER數據庫

最近做一個項目的DOTNET版,說是升級,從ASP升為DOTNET,可因為項目架構原因,數據庫得從ORACLE轉為SQL SERVER...^_|| ,之前未使用過ORACLE,轉換數據過程中碰到了不小的麻煩。

這中間過程之痛苦不再贅述,直接講我導數據流程及遇到的問題.如有講錯的地方,請大家指教''

一、前提: 因為我是從ORACLE數據庫服務器導出到目的機器,所以首先在目的機器上安裝ORACLE同一版本的客戶端,這樣做是為了在用MSSQL導入數據時能選擇ORACLE數據源。接下來我做的這個動作不知是否是必須的:ORACLE程序菜單中->net manage增加一個服務命名,填入源機器所在ORACLE庫服務名,主機名。

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

三、具體工作來了。。

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

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

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

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

ORACLE到SQLSERVER需要注意的有:

(1)表中字段類型的變化,number 變為float,varchar2變為varchar;

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

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

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

作者:http://www.zhujiangroad.com
來源:http://www.zhujiangroad.com
北斗有巢氏 有巢氏北斗