Oracle SQL Developerの高度な機能

目的

このチュートリアルでは、Oracle SQL Developerの高度な機能について説明します。

所要時間

約50分

概要

Oracle SQL Developerは、生産性を強化し、データベース開発作業を簡素化する無償のグラフィカル・ツールです。 Oracle SQL Developerを使用すると、ユーザーはデータベース・オブジェクトの参照、SQL文の実行、PL/SQL文の編集とデバッグ、組込みレポートや独自に作成したレポートの実行を行うことができます。 Oracle SQL Developerには、ファイル・ベースの開発や統合バージョンの管理といったあまり知られていない機能もあり、さらにコードの書式設定やコード・インサイト、コピー、エクスポート、比較といった細かい機能も充実しています。 また、Oracle Application Expressアプリケーションを表示することも可能です。

このチュートリアルでは、いくつかの高度な機能を実際に使用してみます。具体的には、コード・テンプレート作成機能、拡張検索機能、およびスキーマ・コピー機能を使用します。 また、Oracle Application Expressを使用しているユーザー向けのセクションもあります。

Javaで開発されたOracle SQL Developerは、Windows、Linux、Mac OS X上で実行されます。 データベースへの接続は、デフォルトではJDBCシン・ドライバ経由で行われるため、Oracle Homeは不要です。 Oracle SQL Developerは、ダウンロードしたzipファイルを解凍するだけでインストールできます。 Oracle SQL Developerでは、サポートされているOracle Databaseであれば、Express Editionを含むすべてのエディションに接続できます。

前提条件

このチュートリアルを始める前に次のことを確認してください。

環境のセットアップ

このチュートリアルでは、一連のユーザーが必要になります。 環境をセットアップするために、Oracle SQL Developerを使用して新規ユーザーと各種接続を作成します。 このセットアップを実行するには、以下の手順を実行します。

.

Oracle SQL Developerを開きます。

 

.

Connectionsナビゲータで、「Connections」を右クリックし、「New Connection」を選択します。

 

.

system_orclという接続を作成して次の詳細情報を入力したら、「Test」をクリックしてステータスを確認します。

Connection Name: system_orcl
Username: system
Password: <パスワード> (Oracle Database 11gでは、大文字と小文字が区別されます。)
Hostname: localhost
Port: 1521
SID: orcl

 

.

テストに成功しました。 「Connect」をクリックして、接続を実行および保存します。

 

.

新しく作成したシステム接続を展開します。 「Other Users」を右クリックし、「Create User」を選択します。

 

.

次の情報を入力し、「System Privileges」タブをクリックします。

User name: test
Password:test
Default Tablespace:Users
Temporary Tablespace:Temp

 

.

次の権限を選択し、「Apply」をクリックします。

CREATE PROCEDURE
CREATE SEQUENCE
CREATE SESSION
CREATE TABLE

CREATE TRIGGER
CREATE TYPE
CREATE VIEW
UNLIMITED TABLESPACE

 

.

実行されたSQLを確認します。 「Close」をクリックします。

 

.

テスト・ユーザー向けに、もう1つの接続を作成します。 「Connections」を右クリックして、「New Connection」を選択します。

 

.

次の情報を入力して、「Continue」をクリックします。

Connection Name: test_orcl
Username: test
Password: test
Save Passwordを選択
Hostname: localhost
Port: 1521
SID: orcl

 

.

hrユーザー向けに、さらに別の接続を作成します。 「Connections」を右クリックして、「New Connection」を選択します。

 

.

次の情報を入力して、「Continue」をクリックします。

Connection Name: hr_orcl
Username: hr
Password: hr
Save Passwordを選択
Hostname: localhost
Port: 1521
SID: orcl

注: 別のチュートリアルですでにhr_orcl接続を作成している場合は、この手順を省略してください。

 

オブジェクトのエクスポート

エクスポート・ウィザードを使用すると、データベース接続に含まれるすべて(または一部)のデータベース・オブジェクトをファイルへエクスポートできます。 エクスポート・ファイルに含まれる内容は、エクスポート・オブジェクトを作成するためのSQLデータ定義言語(DDL)文だけではありません。データもエクスポートされるよう選択した場合、エクスポート・ファイルにはエクスポート・オブジェクトを生成するためのデータ操作言語(DML)が含まれます。

.

Tools」→「Database Export」の順に選択します。

 

.

ファイルにc:\<前提条件でファイルを解凍したディレクトリ>\export.sqlと入力し、「hr_orcl」接続を選択します。

 

.

DDLオプションの欄で、TerminatorオプションとPretty Printオプションがデフォルトで選択されています。 残りのオプションを確認し、選択されていない状態のままにします。 「Next」をクリックします。

 

.

指定したエクスポート・ファイルがすでに存在する場合、上書きを確認するプロンプトが表示されます。 「Yes」をクリックします。

 

.

Types to Exportウィンドウには、hr_orcl接続からエクスポートするオブジェクト・タイプが表示されています。 デフォルトでは、すべてのオブジェクト・タイプが選択されています。 「Toggle All」をクリックして、すべてのオブジェクト・タイプの選択を解除します。

 

.

Tables」オブジェクト・タイプのみを選択し、「Next」をクリックします。

注: 少なくとも1つのオブジェクト・タイプを選択する必要があります。

 

.

Go」をクリックすると、前の手順で指定した選択条件に一致するすべてのオブジェクトが検索されます。

 

.

hrが所有するすべての表がリストに表示されます。 EMPLOYEES表とDEPARTMENTS表を選択したら、矢印ボタンをクリックして右側のウィンドウへ移動させます。

 

.

Next」をクリックします。

 

.

出力ファイルの作成に使用される情報を確認します。出力ファイルには、指定に沿ったデータベース・オブジェクトとデータをエクスポートするための文が含まれます。 「Finish」をクリックして、出力ファイルを作成します。

 

.

ファイルの内容はSQL Worksheetにも表示されます。ここで内容を編集してスクリプトとして実行できます。 ドロップダウン・リストから「test_orcl」接続を選択します。

 

.

Run Scriptアイコンをクリックします。

 

.

スクリプトが正しく実行されました。 Connectionsナビゲータで、「test_orcl」接続を開きます。

 

.

Tables」を展開します。 「DEPARTMENTS」表と「EMPLOYEES」表がリストに表示されます。

 

スキーマのコピー

データベース・コピー機能を使用すると、ソース・スキーマからターゲット・スキーマへ直接オブジェクトをコピーできます。 これは、スキーマ間ですべての表とデータを簡単にコピーするための非常に便利な方法です。 2つのスキーマ間で表をコピーするには、以下の手順を実行します。

.

Tools」→「Database Copy」の順に選択します。

 

.

ここでは、hr_orcl接続からtest_orcl接続へスキーマ・オブジェクトをコピーします。 ソース接続として「hr_orcl」を選択し、ターゲット接続に「test_orcl」を選択したら、「Next」をクリックします。

 

.

Copy Summaryウィンドウで、EMPLOYEESとDEPARTMENTSをはじめとして、HRに含まれるすべての表がTestに作成されることを確認します。 「Finish」をクリックします。

 

.

Oracle SQL DeveloperウィンドウのSchemaCopyログ・ファイルに比較結果が表示されます。 ログに含まれるすべての結果を確認します。 予想したとおりのエラーが表示されているでしょうか。 「Refresh」をクリックして、新しくコピーされたオブジェクトを表示します。

 

.

新しくコピーされたオブジェクトが表示されます。

 

.

SchemaCopyログを下方向にスクロールし、CREATE TABLE "DEPARTMENTS"文の実行時に発生したエラーを確認します。表がすでに存在することが示されています。

 

データベース・オブジェクトの検索

Oracleデータベース接続には、さまざまな種類のオブジェクト(表、列、関数やプロシージャ内の宣言など)が関連付けられています。 オブジェクトを検索すると、編集ペインでオブジェクトを開いて作業できます。 Oracle SQL Developer Release 1.5以降では、Oracle Database 11gのPL/Scope機能を利用して、パラメータの宣言や参照を検索できます。 データベース・オブジェクトを検索するには、以下の手順を実行します。

.

File」→「Open」の順に選択します。

 

.

前提条件でファイルを解凍したディレクトリからproc_emp_cursor.sqlファイルを選択し、「Open」をクリックします。

 

.

接続リストから「hr_orcl」を選択します。

 

.

Run Script」アイコンをクリックします。

 

.

プロシージャが正しくコンパイルされました。

 

.

View」→「Find DB Object」の順に選択します。

 

.

Find Database Objectウィンドウで「hr_orcl」接続を選択し、名前にc_emp_cursorと入力してから「Lookup」をクリックします。

 

.

条件に一致するオブジェクトは見つかりませんでした。 「More」をクリックします。

 

.

次から検索を実行する際、PL/SQLプロシージャを含むすべての種類のデータベース・オブジェクトが検索されます。 「Lookup」をクリックします。

 

.

c_emp_cursorを含む箇所が見つかりました。

 

.

いずれかのc_emp_cursorをクリックすると、PL/SQLエディタでその箇所を表示および編集できます。

 

.

データベース・オブジェクトの検索にはワイルド・カードを使用することも可能です。 名前を%emp_cursorに変更して、「Lookup」をクリックします。

 

.

カーソルc_emp_cursorが含まれる箇所とプロシージャproc_emp_cursorが含まれる箇所がすべて表示されます。

 

.

検索結果にフィルタを適用することも可能です。 使用法として「DECLARATION」を選択し、「Lookup」をクリックします。

 

.

DECLARATION文のみがリストに表示されます。

 

.

タイプに基づいてフィルタリングすることもできます。 Usageを「All」に戻し、名前に%dept%と入力したら、タイプに「View」を選択して「Lookup」をクリックします。

 

.

名前にDEPTが含まれるビューが表示されます。

 

SQL Worksheetのプリファレンス設定

Oracle SQL Developerのプリファレンスを変更することで、SQL Worksheetのさまざまな設定を好みに応じてカスタマイズできます。 SQL Worksheetのプリファレンスを設定するには、次の手順を実行します。

ドラッグ・アンド・ドロップ効果の設定

ドラッグ・アンド・ドロップ効果は、ConnectionsナビゲータからオブジェクトをドラッグしてSQL Worksheetにドロップする際に作成されるSQL文の種類(SELECT、INSERT、UPDATE、またはDELETE)を決定します。 デフォルトでは、ナビゲータからSQL Worksheetへのドラッグ・アンド・ドロップで作成されるのは、表に含まれるすべての列に対するSELECT文です。 これらの設定は変更できます。

ドラッグ・アンド・ドロップ効果を変更するには、以下の手順に従います。

.

Tools」→「Preferences」の順に選択します。

 

.

Database」を展開し、「Drag And Drop」を選択します。

 

.

ドラッグ・アンド・ドロップ効果を「Insert」に変更して、「OK」をクリックします

 

.

Connectionsナビゲータで「hr_orcl」を右クリックし、「Open SQL Worksheet」を選択します。

 

.

hr_orcl」→「Tables」の順に展開します。 JOBS表を選択してSQL Worksheet領域にドラッグします。

 

.

どの種類の文を作成するかを尋ねるダイアログが表示されます。 先ほど変更したとおりに、デフォルトでINSERTが選択されていることを確認します。 このダイアログが表示されたのは、Prompt every timeが選択されているためです。 「Prompt every time」チェック・ボックスの選択を解除し、「Apply」をクリックします。

 

.

JOBS表に対するINSERT文が作成されました。

 

コード・テンプレートの設定

頻繁に使用するコードに対して、コード・テンプレートを作成できます。 コード・テンプレートを作成および使用するには、以下の手順を実行します。

.

Tools」→「Preferences」の順に選択します。

 

.

Database」→「SQL Editor Code Templates」の順に選択します。 ここでは新規テンプレートを作成するため、「Add Template」をクリックします。

 

.

Idフィールドをクリックし、excepと入力します。 次に、この行のTemplateフィールドをクリックします。

 

.

Edit」アイコンをクリックして、このテンプレートにコードを追加します。

 

.

コード・テンプレートが参照された場合に使用されるコードとして、次のコードを入力します。 次に、「Close」をクリックします。

EXCEPTION
WHEN NO_DATA_FOUND THEN
DBMS_OUTPUT.PUT_LINE ('The query did not return a result set');

 

.

OK」をクリックします。

 

.

Procedures」を展開し、「PROC_EMP_CURSOR」を選択します。

 

.

END LOOP;の下の新しい行にexcと入力すると、コード・テンプレートがポップアップ表示されます。 このコード・テンプレートをダブルクリックします。

 

.

プロシージャ内にコード・テンプレートが挿入されたことを確認します。 ドロップダウン・リストから「Compile」を選択します。

 

.

プロシージャが正しくコンパイルされました。

 

Oracle Application Expressの統合

Oracle SQL DeveloperではOracle Application Expressアプリケーション向けのインタフェースが提供されており、Oracle APEXを使用する際に役立つさまざまな機能が提供されています。 このチュートリアルでは、以下の処理を実行します。

アプリケーションの表示

Oracle SQL Developerを使用すると、さまざまな方法でOracle APEXアプリケーションを表示できます。 ここでは、『Getting Started with Oracle Application Express』オンライン・ガイドで使用したOEHR Sample Objectsアプリケーションを表示します。Oracle Application Expressアプリケーションを表示するには以下の手順を実行します。

.

ユーザーHR_APEX向けに新規データベース接続を作成します (前述の項で使用したタブが開いたままになっている場合は、タブを閉じて構いません)。

Connectionsナビゲータで「Connections」を右クリックし、「New Connection」を選択します。

 

.

次の情報を入力して、「Continue」をクリックします。

Connection Name: hr_apex_orcl
Username: hr_apex
Password: hr_apex
Hostname: localhost
Port: 1521
SID: orcl

 

.

Connectionsナビゲータで「Application Express」ノードを展開し、hr_apexスキーマが所有するすべてのアプリケーションを表示します。

 

.

Sample Application」を選択し、アプリケーションレベルの詳細情報を表示します。この情報には、LOV、リスト、テンプレート、タブなどが含まれます。

 

.

Sample Application」を展開し、アプリケーションを構成するページ・リストを表示します。

 

.

Master Detail」ページをクリックすると、詳細タブにページレベルの詳細情報が表示されます。 これには、リージョン、項目、ボタン、プロセスなどが含まれます。

 

.

異なるアプリケーション間やページ間で詳細情報を比較できます。 Master Detailページで「Freeze View」アイコンをクリックします。

 

.

Add Modify Customers」ページを選択して新しいタブを開き、このページの詳細情報を表示します。

 

.

Add Modify Customersページのタブを選択し、Master Detailページの下部にドラッグしてリリースします (ドラッグすると、新しい位置を示す青色のボックスが表示されます)。

 

.

Add Modify Customersの「Items」タブをクリックします。

 

.

Master Detailページの「Items」タブをクリックします。

 

.

これで、簡単に双方の値を比較できます。 確認が終わったら、両方のタブを閉じます。

 

アプリケーションのインポート

Oracle SQL Developerを使用して、Oracle Application Expressアプリケーションをインポートできます。 このセクションでは、TIMESHEETSというサンプル・アプリケーションをインポートします。 Oracle APEXでは一連のパッケージ・アプリケーションが提供されており、これらは変更することなくインストールしてすぐに使用できます。 これらのアプリケーションには、OTNのOracle APEXホームページ(http://apex.oracle.com)からアクセスできます。

Oracle APEXアプリケーションをインポートして表示するには、以下の手順を実行します。

.

Connectionsナビゲータで「hr_apex」接続を選択し、「Application Express」ノードを右クリックして「Import Application」を選択します。

 

.

表示されたダイアログで「Browse」をクリックして、インポートするファイルを探します。

 

.

前提条件でファイルを解凍したディレクトリからtimesheets_installer_1.0.sqlファイルを選択し、「Select」をクリックします。

 

.

Next」をクリックします。

 

.

Choose Import Optionsダイアログで「Run Install Script」オプションを選択し、残りはデフォルトのままにします。 「Next」をクリックします。

 

.

結果を確認したら、「Finish」をクリックします。

 

.

インポート・プロセスには少し時間がかかります。 「OK」をクリックして、インストール・プロセスを完了します。

 

Oracle Application Expressのレポートの実行

Oracle SQL Developerには、一連のレポートが同梱されています。 これらには、Oracle Application Expressのレポートも含まれています。 Application Expressのレポートを確認するには、以下の手順を実行します。

.

Reports」タブをクリックします。

 

.

All Reports」→「Data Dictionary Reports」→「Application Express」の順に展開し、利用可能なレポートを確認します。

 

.

Applications」をクリックします。 Select Connectionウィンドウが表示されたら、「hr_apex」を選択して「OK」をクリックします。

 

.

各アプリケーションの詳細情報を含むレポートが表示されます。 「Sample Application」をクリックします。

 

.

詳細レポートで「LOV」タブを選択します。 ここで、アプリケーションに含まれる各種のLOVが確認できます。

 

まとめ

このチュートリアルで学習した内容は、次のとおりです。