標籤:des cWeb style blog color os io 使用 java
第一次使用SqlServer2012,介面和VS2012風格一致了,Great!
進入正題,這篇博文主要寫一下自己親測的一個案例,使用SqlServer2012的“匯入和匯出資料”功能向Oracle11g匯入資料表,本機裝的是SqlServer2012和Oracle11g用戶端,Oracle執行個體安裝在伺服器192.168.40.115上。
- 開啟“匯入和匯出資料”工具,第一個選擇資料來源,本機伺服器名稱就寫點號“.”或者“localhost”,身分識別驗證選擇第一個即可,然後選擇要匯出的資料庫名稱,接著點擊下一步。
2. 在“目標”下拉框選擇“.Net Framework Data Provider for Oracle”(SqlServer2012版本的匯入匯出資料工具去除了以前版本裡的Microsoft ODBC for Oracle),在Password和User ID填寫登入到Oracle資料庫的密碼和使用者名稱,在DataSource欄按照以下格式填寫(尾部不要帶 有分號):
(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.40.115)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=orcl)))
填好後,點擊空白處“ConnectionString”會自動產生。點擊下一步。
3. 如果串連不成功會提示:
如果串連成功,則會進入下一步:
如果不是整表匯出,則選擇第二個選項,使用SQL語句篩選匯出資料,這裡是整表匯出,所以直接點擊下一步。
4. 選擇需要的匯出的表。
雙擊所選表的對應的按鈕,開啟“列映射”視窗,
再點擊“編輯 SQL”按鈕,
這裡發現工具自動產生的Oracle中建立表的SQL語句有一點小問題,就是表名和列名都是帶雙引號的,這樣產生的表名和列名也是帶雙引號的,但如果在這裡將SQL語句修改正確,最終匯出資料的結果是只建立成功了表,但資料轉送失敗,所以選擇預設的SQL語句執行,最後在Oracle裡更改表名和列名。
5. 由於Oracle沒有int類型,所以需要進行轉換,根據情況,選擇出錯時的處理方式,再點擊下一步。
6. 這一步沒什麼好說的,點擊“完成”,則執行資料匯出工作。
7. 執行成功的結果
8. 最後需要在PL/SQL中對帶雙引號的表名和列名進行重新命名處理,分別使用兩條SQL語句:
“ALTER TABLE old_table_name RENAME TO new_table_name;--重新命名表
ALTER TABLE [table_name] RENAME COLUMN [column_name] TO [new_column_name];--重新命名列”
結束語:這次是通過“.Net Framework Data Provider for Oracle”的方法向Oracle匯入資料,因為工具自身的缺陷,最後需要對結果進行一下小處理,總體而言方法還算簡便。
SqlServer2012匯入Oracle詳細案例