標籤:sdn ble 指定 acl data time arc 步驟 identity
來源: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).
SQL Server資料庫轉換成oracle