資料移轉,資料轉移
1. 軟體支援1.1下載遷移工具:Navicat_Premium_11.0.101.2串連資料庫
1.2.1開啟Navicat,點擊串連。建立MySQL串連和oracle串連。具體步驟如:
(圖1)
(圖2)
1.2.2串連MySQL資料庫:
(圖三)
2. 在MySQL中建立資料庫
2.1開啟資料庫連結之後,右擊,選擇建立資料庫:
(圖四)
2.2填寫表資訊:
(圖五)
3. 遷移表結構
3.1開啟Oracle的資料庫,右擊選擇資料轉送:
(圖六)
3.2填寫資料轉送常規資訊:
(圖七)
3.3填寫資料轉送進階資訊:
(圖八)
3.4遷移完表結構後隨機抽取幾張表,檢查表結構是否正確
4. 修改表結構
4.1遷移完成後,開啟Mysql資料庫,執行修改表結構的sql指令碼(注意,最好不要直接運行sql檔案。需要手動刪除外鍵):
(圖九)
4.2修改完表結構後隨機抽取幾張表,檢查表結構是否修改正確
5. 修改儲存引擎
5.1修改完表結構後,執行修改儲存引擎的sql指令碼(注意,最好不要直接運行sql檔案):
(圖十)
5.2修改完儲存引擎後隨機抽取幾張表,檢查表的儲存引擎是否修改正確
6. 匯入資料
*lejobdb中以mr開頭的表不要匯入資料,否則會報錯(原因:這張表中有相同的主鍵)
6.1開啟Oracle資料庫,右擊選擇資料轉送:如(圖六)
6.2填寫資料轉送常規資訊:如(圖七)注意:不能匯入帶有外鍵的表中的資料
6.3填寫資料轉送進階資訊:注意:匯入資料時要使用事務
(圖十一)
7. 檢查資料
隨機抽取所導資料庫中的表,檢查其中的資料有沒有問題。
Oracle中資料移轉的工具
SQL*Plus Copy命令
問題描述
怎樣在SQL*Plus中實現不同的表之間的資料複製,不論是本地的還是遠端?
問題分析
在SQL*Plus中的copy命令,可以完成遠端資料庫、本機資料庫或Oracle資料庫與非Oracle資料庫之間的資料複製。其效能與匯入/匯出相同。
copy的基本命令格式:
copy {from source_database |to destination_database}{append|create|insert|replace}destination_table[(column,column,column,...)]using<source_select_statement>
其中資料庫連接使用如下格式:
username/password\]@connect_identifier
在資料複製時,複製支援的資料類型為:char、date、long、number、varchar2。 所示。
SQL*Plus Copy命令可在不同資料庫之間,以及同一個資料庫內的不同模式的表之間複製資料。
? •從遠端資料庫複製資料到本機資料庫。
? •從本機資料庫(預設)複製資料到遠端資料庫。
? •從一個遠端資料庫複製資料到另一個遠端資料庫。
通常,copy命令用於Oracle資料庫與非Oracle資料庫之間複製資料。如果在Oracle資料庫之間複製資料,應該使用create table as 和insert的SQL命令。
•對目標表的控制方式有4種類型:replace、create、insert和append。
? •replace子句指定了被建立的表名。如果目標表已存在,則刪除並用包含複製資料的表替代。若不存在,則建立目標表。
? •使用create子句可避免覆蓋已存在的表。若目標表已存在,則copy報告一個錯誤;若不存在,則建立目標表。
? •insert插入資料到已存在的表。
將查詢到的行插入到目標表,如果目標表不存在,copy返回錯誤。當使用insert時,using子句必須為目標表的每個列選擇對應的列。
? •append是將查詢到的行插入到目標表。如果不存在,則建立目標表並插入。
問題解答
首先應注意的是:
1)copy是SQL*Plus命令,不是SQL命令,在語句最後不必加分號;
2)由於多數copy命令比較長,所以,在分行時每行末尾必須有續行符(-),最後一行不加。
具體步驟如下。
步驟1:使用using子句指定一個查詢,將其查詢結果資料複製到本機資料庫的當前模式下employee表中。例如:
copy from hr/hrd@rensh-replace employee-using select last_name,salary-from emp_details_view-where department_id=30
步驟2:使用create從一個遠端資料庫複製資料到本機資料庫。
copy from hr/<your_password>@bostondb-create empcopy-using select*from hr
步驟3:為其他使用者複製資料。
copy from hr/hr@dbora-create job-using select*from renbs.jobs
以使用者h......餘下全文>>
Oracle中資料移轉的工具
SQL*Plus Copy命令
問題描述
怎樣在SQL*Plus中實現不同的表之間的資料複製,不論是本地的還是遠端?
問題分析
在SQL*Plus中的copy命令,可以完成遠端資料庫、本機資料庫或Oracle資料庫與非Oracle資料庫之間的資料複製。其效能與匯入/匯出相同。
copy的基本命令格式:
copy {from source_database |to destination_database}{append|create|insert|replace}destination_table[(column,column,column,...)]using<source_select_statement>
其中資料庫連接使用如下格式:
username/password\]@connect_identifier
在資料複製時,複製支援的資料類型為:char、date、long、number、varchar2。 所示。
SQL*Plus Copy命令可在不同資料庫之間,以及同一個資料庫內的不同模式的表之間複製資料。
? •從遠端資料庫複製資料到本機資料庫。
? •從本機資料庫(預設)複製資料到遠端資料庫。
? •從一個遠端資料庫複製資料到另一個遠端資料庫。
通常,copy命令用於Oracle資料庫與非Oracle資料庫之間複製資料。如果在Oracle資料庫之間複製資料,應該使用create table as 和insert的SQL命令。
•對目標表的控制方式有4種類型:replace、create、insert和append。
? •replace子句指定了被建立的表名。如果目標表已存在,則刪除並用包含複製資料的表替代。若不存在,則建立目標表。
? •使用create子句可避免覆蓋已存在的表。若目標表已存在,則copy報告一個錯誤;若不存在,則建立目標表。
? •insert插入資料到已存在的表。
將查詢到的行插入到目標表,如果目標表不存在,copy返回錯誤。當使用insert時,using子句必須為目標表的每個列選擇對應的列。
? •append是將查詢到的行插入到目標表。如果不存在,則建立目標表並插入。
問題解答
首先應注意的是:
1)copy是SQL*Plus命令,不是SQL命令,在語句最後不必加分號;
2)由於多數copy命令比較長,所以,在分行時每行末尾必須有續行符(-),最後一行不加。
具體步驟如下。
步驟1:使用using子句指定一個查詢,將其查詢結果資料複製到本機資料庫的當前模式下employee表中。例如:
copy from hr/hrd@rensh-replace employee-using select last_name,salary-from emp_details_view-where department_id=30
步驟2:使用create從一個遠端資料庫複製資料到本機資料庫。
copy from hr/<your_password>@bostondb-create empcopy-using select*from hr
步驟3:為其他使用者複製資料。
copy from hr/hr@dbora-create job-using select*from renbs.jobs
以使用者h......餘下全文>>