SQL Server數據庫轉換成oracle


來源:http://blog.csdn.net/hzfu007/article/details/6182151

經常碰到需要把sql server的數據遷移到Oracle的情況。

在網上查找一下,有很多方法,有用第三方工具的等,但sql server本身就提供一個“導入導出”的工具,用這個工具就可以把sql server數據轉換到oracle中。

下面簡單列一下操作步驟:

1、

在sql server中打開導入導出工具,在選擇源數據界面上選擇數據源,一般默認就可以了。輸入源數據的服務器ip、用戶名、密碼,選擇數據庫,下一步。

2、

選擇目的界面中,這里要說明下,最好選擇”MicroSoft OLE DB Provider for Oracle方式(這種方式有個缺點就是如果sqlserver表中含有ntext字段的時候,且有多個的時候,就轉換不了,這個時候用Oracle Provider  for ole DB這種方式就行,用這個方式的時候,在轉換界面的時候,因為默認會用long字段來對應,所以需要手工在列映射與轉換界面直接把建表語句中的long字段修改成clob,再轉換,ok),選擇另外其他方式時那些表和字段的映射好像不太准確(我沒有一一去驗證其他方式).輸入服務器名稱和用戶密碼,測試成功后,下一步。

3、在指定復制或查詢界面中,選擇“從數據庫復制表和視圖”方式,下一步。

4、在選擇源表和視圖界面中,選擇要轉移的表和視圖。然后一直按照提示來操作就可以了。

注意事項:

1、這些表中的字段映射可能要手工來指定。不過一般自動默認都可以了。

2、sqlserver導入到oracle的表和字段在oracle中用sql語句訪問的時候需要加上雙引號才能訪問,這個就非常麻煩。因為數據遷移的時候需要

頻繁的操作這些。所以我用了一個很簡單的方法,就是在oracle重建所有表,然后把數據拷進來。

附:

 

 

Access, SQL Server, and Oracle數據類型的對應關系

 

 

The table below shows the ADO Data Type mapping between Access, SQL Server, and Oracle:

DataType Enum Value Access SQLServer Oracle
adBigInt 20   BigInt (SQL Server 2000 +)  
adBinary 128   Binary
TimeStamp
Raw *
adBoolean 11 YesNo Bit  
adChar 129   Char Char
adCurrency 6 Currency Money
SmallMoney
 
adDate 7 Date DateTime  
adDBTimeStamp 135 DateTime (Access 97 (ODBC)) DateTime
SmallDateTime
Date
adDecimal 14     Decimal *
adDouble 5 Double Float Float
adGUID 72 ReplicationID (Access 97 (OLEDB)), (Access 2000 (OLEDB)) UniqueIdentifier (SQL Server 7.0 +)  
adIDispatch 9      
adInteger 3 AutoNumber
Integer
Long
Identity (SQL Server 6.5)
Int
 
Int *
adLongVarBinary 205 OLEObject Image Long Raw *
Blob (Oracle 8.1.x)
adLongVarChar 201 Memo (Access 97)
Hyperlink (Access 97)
Text Long *
Clob (Oracle 8.1.x)
adLongVarWChar 203 Memo (Access 2000 (OLEDB))
Hyperlink (Access 2000 (OLEDB))
NText (SQL Server 7.0 +) NClob (Oracle 8.1.x)
adNumeric 131 Decimal (Access 2000 (OLEDB)) Decimal
Numeric
Decimal
Integer
Number
SmallInt
adSingle 4 Single Real  
adSmallInt 2 Integer SmallInt  
adUnsignedTinyInt 17 Byte TinyInt  
adVarBinary 204 ReplicationID (Access 97) VarBinary  
adVarChar 200 Text (Access 97) VarChar VarChar
adVariant 12   Sql_Variant (SQL Server 2000 +) VarChar2
adVarWChar 202 Text (Access 2000 (OLEDB)) NVarChar (SQL Server 7.0 +) NVarChar2
adWChar 130   NChar (SQL Server 7.0 +)  

* In Oracle 8.0.x - decimal and int are equal to number and number(10).


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM