第一次使用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導入數據,因為工具自身的缺陷,最后需要對結果進行一下小處理,總體而言方法還算簡便。
