- ORACLE 11g權威指南
- 谷長勇 王彬 單永紅 陳杰等編著
- 6977字
- 2018-12-29 19:36:49
第9章 Oracle SQL Developer工具介紹
除了命令行方式的SQL*Plus以外,Oracle還提供了一個圖形化的工具SQL Developer。本章將對SQL Developer工具予以簡要介紹,并舉例說明其最主要的功能。
9.1 SQL Developer概述
本節簡要介紹一下SQL Developer的版本演化、產品特點及下載與安裝方面的內容。
9.1.1 SQL Developer版本演化
Oracle SQL Developer是一個免費的圖形化數據庫開發工具。
2006年3月首次發布的Oracle SQL Developer提供了一個與數據庫對象進行交互的圖形化界面,使用戶可以瀏覽數據庫,運行SQL、PL/SQL和SQL*Plus語句,執行SQL腳本,以及編輯和調試PL/SQL語句。此外,Oracle SQL Developer還提供了一套報表,用于對字典的深入查詢。SQL Developer 1.0發布不久,在2006年12月又發布了兩個補丁版本和SQL Developer 1.1。
2007年9月25日,甲骨文公司正式發布Oracle SQL Developer 1.2版。該版本也被稱為“移植版本”,這是因為在該版本中,包括了一個“Developer移植工作臺”。它是一個重新開發的新工具,極大地擴展了以前Oracle單獨提供的移植工作臺的功能和可用性。通過與SQL Developer緊密集成,新版本使用戶在一個地方就可以瀏覽第三方數據庫中的數據庫對象和數據,以及將這些數據庫移植到Oracle數據庫中。
9.1.2 SQL Developer產品特點
(1)SQL Developer以Java編寫而成,能夠提供跨平臺工具。使用Java意味著同一工具可以運行在Windows、Linux和MAC OS X上。這就提供了一個跨平臺的統一界面。
(2)SQL Developer中到數據庫的默認連接使用的是瘦JDBC驅動程序。默認使用JDBC瘦驅動程序意味著無須安裝Oracle客戶端,從而將配置和占用空間降至最低。
(3)SQL Developer使用的擴展框架借用了JDeveloper。Oracle提供了一個包含示例和文檔的擴展開發工具包,可以方便地進行擴展。
9.1.3 SQL Developer下載與安裝
SQL Developer的運行版可以從Oracle技術網站下載,網址為:
http://www.Oracle.com/technology/software/products/sql/index.html。
下載完成后解壓縮即可運行,無須安裝。
9.2 創建數據庫連接
要使用SQL Developer對數據庫進行操作,首先需要創建到數據庫的連接,以下我們分別介紹SQL Developer如何創建到Oracle、MySQL和SQL Server數據庫的連接。
9.2.1 連接到Oracle數據庫
可以通過下面方式實現到Oracle數據庫的連接。
如圖9-1所示,運行SQL Developer.exe,進入操作界面。

圖9-1 初始操作界面
右鍵單擊Connection,新創建一個數據庫連接。
① 基本的連接方式,如圖9-2所示。

圖9-2 連接方式
② 基于TNS配置的客戶端連接,如圖9-3所示。

圖9-3 基于TNS配置的客戶端連接
③ 瘦客戶端的連接,如圖9-4所示。

圖9-4 瘦客戶端的連接
④ 連接完成以后,自動打開SQL Worksheet窗口,如圖9-5所示。

圖9-5 SQL Worksheet窗口
9.2.2 連接到MySQL數據庫
創建SQL Developer到MySQL數據庫的連接,如圖9-6所示,指定用戶名,密碼,主機IP地址,以及相應MySQL數據庫的監聽端口號即可。

圖9-6 MySQL數據庫的連接
9.2.3 連接到SQL Server數據庫
創建SQL Developer到SQL Server數據庫的連接,如圖9-7所示,指定用戶名,密碼,主機IP地址,以及相應的SQL Server數據庫的監聽端口號即可。

圖9-7 SQL Server數據庫的連接
9.3 使用SQL Worksheet操作數據庫
此處,創建一個名為HR_ORCL的到Oracle數據庫的連接,連接用戶為hr(Oracle中默認該用戶是被鎖定的,需要提前對該用戶解鎖)。
可以以sys用戶執行以下命令:
alter user hr unlock account; alter user hr identified by hr.
使用hr用戶連接到數據庫之后,可以瀏覽模式、對象,查詢、插入及修改數據。以下介紹如何用SQL Worksheet完成檢索、插入和修改數據等基本的數據庫操作。
9.3.1 檢索數據
1.編寫SELECT語句瀏覽數據
創建數據庫連接之后,需要確保SQL Worksheet是打開的。如果工作表尚未打開,則使用上下文菜單打開它,如圖9-8所示。
連接之后,您應當看到SQL Worksheet Enter SQL Statement窗口,如圖9-9所示。

圖9-8 創建SQL Worksheet菜單

圖9-9 打開Worksheet
現在,您準備開始。查詢DEPARTMENTS表中的所有數據。輸入以下SQL語句,然后按F9鍵。
Select * from Departments;
注意
檢索到的行數顯示在Results選項卡下方,如圖9-10所示。

圖9-10 檢索數據
2.檢索列
無須選擇表中的所有列,您可以逐條列舉它們,只選擇您需要的數據。
無須輸入每個列名,可以從Connections導航器中拖動表名。展開Tables節點,將EMPLOYEES表拖至工作表上,如圖9-11所示。

圖9-11 檢索列
對于更長、更復雜的查詢語句,如果設置SQL的格式,則SQL更易于閱讀。
使用上下文菜單,選擇Format SQL即可。
現在,從語句中刪除所選的列。下面是一個例子,如圖9-12所示。

圖9-12 刪除所選列
3.檢索行
通常,如果希望限制返回的記錄數量。則需要添加一個WHERE子句。這可能會涉及很多代碼并且很復雜。這里僅列舉最簡單的例子,如圖9-13所示。
使用與上面相同的SELECT語句,刪除“;”,添加:
where department_id = 100;

圖9-13 檢索行
可以發現Results選項卡顯示較少的返回記錄。
9.3.2 插入數據
往數據庫表中插入數據可以使用Data選項卡插入行,也可以使用SQL Worksheet插入行,如下所示。
SQL Developer使用表定義簡化了數據輸入。在Connections導航器中選擇EMPLOYEES表,如圖9-14所示。

圖9-14 選擇表
注意
某些值是必需的(Nullable =“No”)。插入新行時,至少需要填充這些值。
單擊Data選項卡。你所看到的顯示內容是該表中當前擁有的數據。要插入新的一行,請單擊“Insert Row”按鈕,如圖9-15所示。

圖9-15 插入行
為必需的項EMPLOYEE_ID、LAST_NAME、EMAIL、HIRE_DATE和JOB_ID填入值。
要將該記錄保存到數據庫中,請單擊“Commit Changes”按鈕。
您提交了更改之后,Data編輯器日志將顯示Commit Successful注釋。
您還可以在使用命令行或SQL Plus時使用“傳統”方法插入數據。
返回到SQL Worksheet并輸入命令:
Insert into departments (DEPARTMENT_ID,DEPARTMENT_NAME) Values (300, 'http://www.Oracle.com/technology/products/database/sql_developer/howtos/ Research/index.html');
按F9鍵,如圖9-16所示。

圖9-16 插入行
9.3.3 修改數據
和上一節的數據插入操作類似,可以使用SQL Worksheet或SQL命令更新數據,也可以在表定義中使用Data選項卡并更新單個行。
使用Data選項卡界面,您可以輕松地更新行。
單擊Connections導航器中的一個表。這里使用DEPARTMENTS表來演示,如圖9-17所示。

圖9-17 選擇表
這里需要注意,新選擇的表替換了選項卡。要保持EMPLOYEES選項卡和DEPARTMENTS選項卡處于打開狀態,先單擊Freeze View圖標,然后選擇新對象。
在上一個練習中,您添加了一條新記錄。單擊任何值并進行更改,即可更新該值,如圖9-18所示。

圖9-18 修改值
注意
更新了記錄之后,記錄旁邊會顯示一個星號(*)。如前文所述,單擊“Commit Changes”按鈕,更新數據庫中的記錄。
可以使用該方法更新多條記錄,但仍需要單步調試每條記錄并單擊域以更新記錄。如果有多條記錄需要更新,這樣做很麻煩。要更新多條記錄,使用SQL語句更簡單。
update departments set manager_id = 108 where department_id in (120, 130, 140); Commit;
返回至該表的Data選項卡,查看上述內容的結果(或者在SQL Worksheet中編寫一個SQL查詢),如圖9-19所示。

圖9-19 查看結果
9.3.4 刪除數據
與前面兩個例子相同,可以使用SQL Worksheet刪除單行或多行,也可以使用Data選項卡。
返回至DEPARTMENTS數據選項卡,選擇并刪除新插入的記錄,如圖9-20所示。

圖9-20 刪除記錄
該行未刪除,即更改沒有提交至數據庫,直至單擊Commit Changes按鈕。
最后,返回到SQL Worksheet刪除所選的行。
delete from departments where department_id > 200;
如前文所述,這些更改不保存到數據庫。為了撤銷所進行的任何更改,請輸入:
ROLLBACK;
按F9鍵,則發出的刪除操作現在已經恢復,如圖9-21所示。

圖9-21 刪除行
9.4 使用SQL Developer開發和調試PL/SQL
9.4.1 準備工作
為了能夠順利地完成本實驗中的演示實例,需要注意以下兩點。
(1)確保hr用戶已經解鎖(unlock)。
ALTER USER hr UNLOCK ACCOUNT; ALTER USER hr IDENTIFIED BY hr;
(2)對于PL/SQL調試部分,hr用戶需要一些額外的權限。使用以下命令授予權限:
GRANT debug any procedure, debug connect session TO hr;
9.4.2 創建并編譯PL/SQL過程
本節中,我們將創建、編輯并編譯一個PL/SQL過程。執行以下步驟。
在Connections導航器中,右鍵單擊Procedures節點以調用上下文菜單,然后選擇New PROCEDURE,如圖9-22所示。

圖9-22 創建過程
輸入EMP_LIST作為過程名。然后單擊“+”,添加一個參數,如圖9-23所示。

圖9-23 指定過程名稱
雙擊該參數,您可以將值更改為pMaxRows,然后將VARCHAR2更改為NUMBER。確保在單擊“確定”之前按了Enter鍵,如圖9-24所示。

圖9-24 修改過程屬性
隨即顯示指定了參數過程的框架,如圖9-25所示。

圖9-25 默認代碼生成
替換以下PL/SQL:
BEGIN NULL; END;
使用以下代碼:
CURSOR emp_cursor IS SELECT l.state_province, l.country_id , d.department_name, e.last_name , j.job_title, e.salary, e.commission_pct FROM locations l, departments d, employees e, jobs j WHERE l.location_id = d.location_id AND d.department_id = e.department_id AND e.job_id = j.job_id; emp_record emp_cursor%ROWTYPE; TYPE emp_tab_type IS TABLE OF emp_cursor%ROWTYPE INDEX BY BINARY_INTEGER; emp_tab emp_tab_type;i NUMBER := 1; BEGIN OPEN emp_cursor; FETCH emp_cursor INTO emp_record; emp_tab(i) := emp_record; WHILE ((emp_cursor%FOUND) AND (i <= pMaxRows) LOOP i := i + 1; FETCH emp_cursor INTO emp_record; emp_tab(i) := emp_record; END LOOP; CLOSE emp_cursor; FOR j IN REVERSE 1..i LOOP DBMS_OUTPUT.PUT_LINE(emp_tab(j).last_name); END LOOP;END;
注意SQL Developer是如何自動設置代碼格式的。單擊工具欄中的Save按鈕,編譯PL/SQL子程序,如圖9-26所示。

圖9-26 過程編碼
在導航器中展開Procedures,如圖9-27所示。

圖9-2 7 編譯過程
當SQL Developer檢測到無效PL/SQL子程序時,系統導航器中該子程序的圖標會用紅色的×來指示狀態,如圖9-28所示。
Log窗口中顯示編譯錯誤。只需雙擊錯誤,即可導航到錯誤中報告的對應行。SQL Developer還在右側邊列(gutter)中顯示錯誤和提示消息。如果您將鼠標放在邊列中每個紅色方塊上,將顯示錯誤消息。

圖9-28 編譯錯誤提示窗口
在本例中,錯誤消息指示LOOP語句中存在格式錯誤。仔細檢查代碼后,會發現WHILE語句中多了一個圓括號,刪除多余的圓括號,如圖9-29所示。

圖9-29 修改過程編碼
單擊Compile圖標,如圖9-30所示。

圖9-30 再次編譯過程
該過程成功編譯,您現在可以運行該過程,如圖9-31所示。

圖9-31 編譯成功
9.4.3 運行PL/SQL過程
創建并編譯了一個PL/SQL過程之后,您可以使用SQL Developer運行它。執行以下步驟。
在左側導航器中,右鍵單擊EMP_LIST并選擇Run。
調用Run PL/SQL對話框。
Run PL/SQL對話框允許選擇要運行的目標過程或函數(對程序包有用),并顯示所選目標的參數列表。PL/SQL塊文本區域中包含的是SQL Developer用來調用所選程序的生成代碼??梢允褂迷搮^域填充要傳送到程序單元的參數,以及處理復雜的返回類型。如圖9-32、圖9-33、圖9-34所示。

圖9-32 運行過程

圖9-33 修改參數(1)
將PMAXROWS := NULL; 更改為 PMAXROWS := 5;,然后單擊“OK”按鈕。

圖9-34 修改參數(2)
Log窗口中顯示了返回的結果,如圖9-35所示。

圖9-35 返回結果
9.4.4 調試PL/SQL過程
SQL Developer還支持使用Oracle數據庫進行PL/SQL調試。在本主題中,您將調試一個PL/SQL過程、單步調試代碼并在運行時修改值。執行以下步驟。
通過在OPEN emp_cursor;語句所在行對應的代碼左側區中單擊,可在EMP_LIST過程中設置一個斷點,如圖9-36所示。

圖9-36 過程調試
單擊Debug圖標(瓢蟲),如圖9-37所示。
Debug PL/SQL對話框應仍顯示值 PMAXROWS = 5;,單擊“OK”按鈕,如圖9-38所示。

圖9-37 修改屬性(1)

圖9-38 修改屬性(2)
調試器應在您設置的斷點處暫停。您現在可以控制執行流程、修改變量值,以及執行其他調試函數,如圖9-39所示。

圖9-39 斷點設置
注意
如果此時收到錯誤消息“This session requires DEBUG CONNECT SESSION and DEBUG ANY PROCEDURE user privileges”,則說明用戶沒有被授予相應的debug權限,如圖9-40所示。

圖9-40 查看錯誤信息
單擊Step Into圖標
,如圖9-41所示。

圖9-41 單步運行
轉至光標所在的第一行。再次單擊 Step Into圖標
,如圖9-42所示。

圖9-42 再次單步運行
您現在應該選擇光標所在的第一行。第3次單擊Step Into圖標
,如圖9-43所示。
Smart Data窗口開始顯示有限的變量列表,這些變量用在要執行的代碼行中及之前執行的代碼中,如圖9-44所示。
右鍵單擊“DBMS_OUTPUT.PUT_LINE(emp_tab(j).last_name);”這一行,然后選擇Run to Cursor,如圖9-45所示。

圖9-43 單步運行

圖9-44 顯示有限的變量列表

圖9-45 選擇Run to Cursor
展開emp_tab > _values > [1] > _key,您會看到表中給定記錄中域的值。選擇LAST_NAME域,如圖9-46所示。

圖9-46 選擇LAST_NAME域
右鍵單擊LAST_NAME域并選擇Modify Value,如圖9-47所示。

圖9-47 選擇Modify Value
將名稱更改為其他內容,單擊“OK”按鈕,如圖9-48所示。
單擊Resume圖標
以允許PL/SQL運行直至完成,如圖9-49所示。
查看修改后的值是否顯示在Log窗口中,如圖9-50所示。

圖9-48 單擊“OK”按鈕

圖9-49 運行完成

圖9-50 查看結果
9.5 使用SQL Developer運行或創建報表
SQL Developer提供了許多預定義的報表,也可以進行自定義報表。在本節中,我們將介紹如何運行和創建報表。
9.5.1 運行預定義報表
查看預定義報表,可以按照以下步驟進行操作。
在SQL Developer中,切換至Reports選項卡,展開Data Dictionary Reports節點,如圖9-51所示。
選擇About Your Database節點并展開它,可以了解有關數據庫的基本詳細信息。
單擊Version Banner,如圖9-52所示。

圖9-51 展開Data Dictionary Reports節點

圖9-52 數據庫的基本詳細信息
選擇任意報表并運行它。
例如,有一個報表列出了模式中表的所有主鍵。
展開Table -> Constraints節點,選擇Primary Key Constraints,如圖9-53所示。
選擇該節點后,會彈出一個窗口。該窗口允許限制對某個條件的查詢。在本例中,只能限制對表名的查詢。立即單擊“Apply”按鈕,即可選擇所有記錄。
清除Null復選框,在域中輸入字母“e”。(該操作限制了對所有名稱中包含字母“e”的表的查詢)
單擊“Apply”按鈕,如圖9-54所示。

圖9-53 選擇Primary Key Constraints

圖9-54 指定參數
產生的報表顯示了所有名稱中包含字母“e”、具有主鍵的報表,如圖9-55所示。
9.5.2 創建自定義報表
SQL Developer提供創建、保存及運行自定義報表的能力。只需要SQL!自定義報表可以簡單,也可以復雜。這里我們舉一個簡單示例進行說明。
折疊Data Dictionary Reports節點,使用上下文菜單添加一個新報表,如圖9-56所示。

圖9-55 顯示結果

圖9-56 創建自定義報表
可以在此處添加任何查詢。例如,使用以下查詢,如圖9-57所示。
select object_name, object_type from user_objects;
單擊“Apply”按鈕后,報表提示連接到數據庫。可以使用hr(如同在整個練習中所做的一樣),或者使用其他連接(如果有的話),如圖9-58所示。

圖9-57 數據查詢語句

圖9-58 連接到數據庫
最后,可以采用該查詢在SQL Worksheet中使用它,方法是單擊“Run Report in SQL Worksheet”按鈕。
9.6 使用SQL Developer導出操作
使用SQL Developer,可以導出數據,也可以導出元數據(對象定義,DDL語句),本節分別予以介紹。
9.6.1 導出數據
SQL Developer能夠將用戶數據導出為多種格式:CSV、XML、LOADER、TEXT和INSERT。
為了導出表中的數據,可以使用SQL Worksheet并編寫SQL查詢來檢索所需數據,也可以單擊表定義的Data選項卡。這里我們將使用后面這個方法,如圖9-59所示。
① 展開Connections Navigator和Tables節點。
② 單擊DEPARTMENTS。
③選擇Data選項卡。

圖9-59 數據導出
右鍵單擊數據的任何位置以調用上下文菜單,如圖9-60所示。
從EXPORT上下文菜單中選擇INSERT,這將生成一個包含INSERT語句的文件。

圖9-60 生成INSERT語句
選擇適當的目錄,并為該文件命名,如圖9-61所示。
可以通過選擇列并添加WHERE子句來減少返回的記錄數,對導出的內容進行微調。在本例中,我們將接受默認的所有記錄和列。

圖9-61 創建文件
單擊“Apply”按鈕創建文件。
查看創建的文件。可以為每個文件格式重復這些步驟,以觀察所提供的不同格式。
9.6.2 導出對象定義
SQL Developer能夠將部分或全部對象定義導出到腳本文件??梢詫⑦@些腳本文件用作對象定義的備份,或在其他模式中運行它們。在本例中,將導出2個表。
在主菜單中,選擇Tools -> Export,如圖9-62所示。

圖9-62 導出對象的腳本文件
在第一個選項卡中,確保提供了目錄和文件名,如圖9-63所示。

圖9-63 指定目錄和文件名
注意
可以選擇內聯添加約束或將約束作為“alter”表命令。
切換選項卡,選擇所需的對象定義。選擇EMPLOYEES和DEPARTMENTS,如圖9-64所示。

圖9-64 創建腳本文件
單擊“Apply”按鈕。
查看創建的文件。
9.7 使用SQL Developer遷移工作臺
本節我們將通過具體實例講解SQL Developer遷移工作臺的使用方法。
9.7.1 遷移工作臺概述
Oracle SQL Developer 1.2版集成了一個功能強大的遷移工作臺工具,即Oracle SQL Developer遷移工作臺(Oracle SQL Developer Migration Workbench)。使用該工具,可以完成從非Oracle數據庫到Oracle數據庫的遷移工作。在此之前,只能使用Oracle提供的獨立的遷移工具來完成這種工作。
1.SQL Developer遷移工作臺特點
(1)單一集成環境:可以實現在單一的工具和環境下瀏覽第三方數據、遷移數據庫對象和數據,以及瀏覽遷移后的數據庫,從而降低從第三方數據庫向Oracle數據庫遷移所需的時間、成本及有關風險。
(2)細粒度移植支持:可以選擇用于移植的具體對象,比如可以遷移單個表格或幾個數據庫。而且即使有用戶連接在數據庫上也可以進行遷移。
(3)復雜對象的移植支持:支持對存儲過程、觸發器、視圖等對象的移植。
(4)具有新的語法分析程序,可以百分百識別T-SQL語法。該工作臺還具有單個語句翻譯器,可以將任何種類的T-SQL語句粘貼到編輯器中,并將其即時翻譯成PL/SQL語句。
(5)可以用該遷移工作臺附帶的實用向導程序進行單步遷移,也可以將遷移過程分成幾個部分,在需要時對各個不同的部分進行統一修改。
(6)可以生成項目表,將其作為遷移項目的組成部分,并用Oracle SQL Developer的SQL和PL/SQL編制與調試工具修改項目表。
2.SQL Developer遷移工作臺目前支持的數據庫
使用SQL Developer遷移工作臺將以下第三方數據庫遷移到Oracle數據庫中。
◎ Microsoft SQL Server(版本7.0、2000和2005)
◎ Microsoft Access(版本97、2000、2002和2003)
◎ MySQL(版本3.0、4.0和5.0)
9.7.2 數據遷移實例演示
本節將通過實例說明如何完成從第三方數據庫到Oracle數據庫的遷移。我們以MySQL 5.0數據庫為例來進行說明。
1.下載相應的JDBC驅動
由于Oracle SQL Developer使用JDBC驅動來完成到數據庫的連接,因此,為了使Oracle SQL Developer能夠連接到第三方數據庫,需要下載相應的驅動:
◎ MySQL JDBC driver,version 5.1.5,相應的下載地址:http://dev.mysql.com/downloads/ connector/j/5.1.html。
◎ Microsoft SQL Server需要JTDS驅動,相應的網址為:http://jtds.sourceforge.net,具體的1.2版本的下載地址為:http://sourceforge.net/project/showfiles.php?group_id=33291。
◎ 對于Microsoft Access數據庫,由于可以使用JDBC/ODBC橋,所以不需要下載額外的驅動。
2.安裝驅動
將下載文件解壓縮后,得到相應的JAR包。
◎ 對于MySQL數據庫,壓縮文件為mysql-connector-java-5.1.5.zip,壓縮包內JAR文件的名稱為mysql-connector-java-5.1.5-bin.jar。
◎ 對于SQL Server數據庫,壓縮文件為jtds-1.2-dist.zip,JAR文件為jtds-1.2.jar。
在Oracle SQL Developer的主菜單中,單擊Tools -> Preferences,打開DataBase節點,選擇“Third Party JDBC Drivers”,在右邊的窗口中選擇“Add Entry”,選擇解壓縮后得到的JAR包,最后單擊“確定”按鈕,如圖9-65所示。

圖9-65 添加驅動
3.創建連接
創建Oracle SQL Developer到MySQL數據庫(源)的連接,如圖9-66所示。

圖9-66 創建連接
注意
在創建連接的時候,可以使用Test進行測試,確保Oracle SQL Developer能夠以指定的用戶連接到源數據庫;并可以展開目錄樹,瀏覽數據庫對象。
4.創建遷移資料庫
SQL Developer遷移工作臺需要使用一個遷移資料庫來存儲相應的元數據庫,該資料庫包括大約37個表,8個視圖,還有相關的主鍵、索引及觸發器和PL/SQL代碼。雖然不是必需的,但Oracle建議為該資料庫創建一個單獨的數據庫模式(用戶)。資料庫一旦創建完成,就可以對數據遷移進行多次重復操作。
創建并且擁有該資料庫的用戶必須具有相應的權限,以下代碼創建一個資料庫用戶,并賦予必需的權限。
CREATE USER migration IDENTIFIED BY migration DEFAULT TABLESPACE users TEMPORARY TABLESPACE temp; GRANT CONNECT, RESOURCE, CREATE VIEW, CREATE PUBLIC SYNONYM TO migration WITH ADMIN OPTION; GRANT ALTER ANY ROLE, ALTER ANY SEQUENCE, ALTER ANY TABLE, ALTER TABLESPACE, ALTER ANY TRIGGER, COMMENT ANY TABLE, CREATE ANY SEQUENCE, CREATE ANY TABLE, CREATE ANY TRIGGER, CREATE ROLE, CREATE TABLESPACE, CREATE USER, DROP ANY SEQUENCE, DROP ANY TABLE, DROP ANY TRIGGER, DROP TABLESPACE, DROP USER, DROP ANY ROLE, GRANT ANY ROLE, INSERT ANY TABLE, SELECT ANY TABLE, UPDATE ANY TABLE TO migration;
用戶創建完成以后,需要創建一個該用戶到Oracle數據庫的連接。這里我們假定創建的連接名稱為Migration_Repos,連接創建完成以后,在主菜單中選擇Migration -> Repository Management -> Create Repository(如圖9-67所示)。指定連接為Migration_Repos,單擊“Create”按鈕。

圖9-67 創建資料庫
創建過程窗口如圖9-68所示。
遷移資料庫創建完成以后,在Connections導航欄中會多出兩個窗口:Captured Models和Converted Models,如圖9-69所示。
5.數據遷移
在完成源數據庫的連接與遷移資料庫的創建以后,接下來進行以下的步驟。
指定要遷移的源數據庫。
轉換源數據庫。
生成Oracle模式對象所需要的DDL語句。
運行DDL腳本,創建用戶及對象。

圖9-68 創建資料庫過程窗口

圖9-69 Captured Models和Converted Models
將數據從源數據庫遷移到新數據庫。
以下是上述步驟的詳細說明。
捕捉源數據庫。在連接導航欄中,右鍵單擊到源數據庫的連接節點(本例中為MySQL 5.0_mvb),選擇Capture MySQL(M),會彈出一個過程窗口,運行完成以后,單擊“Close”按鈕,如圖9-70所示。

圖9-70 捕捉源數據庫
這樣,已經完成了源數據庫的捕捉過程。此時,關于源數據庫的元數據定義已經存儲在遷移資料庫中,而且已經為下一步的convert(轉換)做好了準備。在左邊的Capture Objects窗口中,捕捉的定義已經是可用的了,如圖9-71所示,可以打開該節點瀏覽。
轉換源數據庫。在Captured Objects窗口中右鍵單擊源數據庫,選擇Convert to Oracle Model。在打開的映射窗口中,我們可以看到數據的轉換規則,可以編輯轉換規則,也可以新增加轉換規則。此處我們單擊“Apply”按鈕來接受該默認的轉換規則。一個過程窗口會被打開,運行完畢以后,單擊“Close”按鈕關閉。該過程完成以后,在Converted Objects窗口中,可以看到相應的結果。此處的轉換規則會被存儲到遷移數據庫中進行保存,如圖9-72所示。

圖9-71 瀏覽源數據庫

圖9-72 轉換源數據庫
在打開的映射窗口中,我們可以看到數據的轉換規則,可以編輯轉換規則,也可以新增加轉換規則。
此處我們單擊“Apply”按鈕來接受該默認的轉換規則。一個過程窗口會被打開,運行完畢以后,單擊“Close”按鈕關閉。該過程完成以后,在Converted Objects窗口中,可以看到相應的結果。此處的轉換規則會被存儲到遷移數據庫中進行保存,如圖9-73和圖9-74所示。

圖9-73 映射窗口

圖9-74 運行過程窗口
該過程完成后,在Converted Objects窗口中可以看到相應的結果。此處的轉換規則會被存儲到遷移數據庫中進行保存,如圖9-75所示。

圖9-75 Converted Objects窗口
為新的Oracle模式生成DDL語句。在該過程中,可以選擇單個、某一類或者全部對象。在鼠標右鍵快捷菜單中選擇“Generate”,如圖9-76所示。

圖9-76 創建DDL語句
運行產生的腳本,創建新的用戶和模式對象。生成的DDL腳本會顯示在SQL Worksheet工作區中。此處需要注意的是,這些腳本會在數據庫中創建新的用戶并且給被創建的用戶授予權限。也就是說運行這些DDL腳本的用戶必須具有相應的系統權限,比如SYSTEM,如圖9-77所示。
腳本運行完成以后,可以為新創建的用戶創建一個新的連接,以查看遷移以后的對象。
遷移數據遷移的最后一步是將源數據庫中的數據遷移到目標數據庫中。在主菜單中選擇Migration -> Migrate Data,在打開的對話框中,選擇Source Connection、tTarget Connection和Converted Model。單擊“OK”按鈕,數據遷移過程開始,完成以后關閉對話框,如圖9-78所示。

圖9-77 產生的DDL腳本

圖9-78 遷移數據庫
至此,數據遷移的工作全部完成。可以在Oracle中以新的用戶查看相應的模式對象。
注意
SQL Developer也提供了一個快速遷移工具,原理與我們上面所說的是一樣的。讀者可以自己去嘗試使用。
9.8 本章小結
本章主要介紹了Oracle SQL Developer的使用,包括創建數據庫連接,使用SQL Worksheet操作數據庫,開發調試PL/SQL語句,運行和創建報表。另外,通過實例演示了如何使用SQL Developer的遷移工作臺完成數據庫的遷移操作。
- 區塊鏈通俗讀本
- Creating Dynamic UIs with Android Fragments(Second Edition)
- 數據庫原理與應用(Oracle版)
- Mastering LOB Development for Silverlight 5:A Case Study in Action
- 爬蟲實戰:從數據到產品
- 大數據分析:R基礎及應用
- 一類智能優化算法的改進及應用研究
- 深入理解Flink:實時大數據處理實踐
- C# 7 and .NET Core 2.0 High Performance
- 從零進階!數據分析的統計基礎(第2版)
- 數據可視化五部曲
- 算法設計與分析
- 網站數據挖掘與分析:系統方法與商業實踐
- Swift:Developing iOS Applications
- 數據質量實踐手冊:4步構建高質量數據體系