デ ー タ ベ ー ス 開 発 者 の た め の
Oracle SQL Developer
Oracle ホワイト・ペーパー
2007 年 6 月
データベース開発者のための Oracle SQL Developer
はじめに ... 3
対象者... 3
おもな利点... 3
アーキテクチャ... 4
おもな特長 ... 4
接続の管理... 4
SQL Worksheet での構文の実行... 5
データベースの参照... 6
スキーマ・オブジェクトの作成および編集 ... 7
SQL 文の生成 ... 7
PL/SQL 開発 ... 7
コード・エディタでの PL/SQL の作成および編集 ... 7
PL/SQL プロシージャ、ファンクション、パッケージの実行 ... 8
PL/SQL のデバッグ... 9
その他の PL/SQL デバッグ機能 ... 10
リモートでの PL/SQL のデバッグ ... 10
データベースのレポート... 11
Oracle Migration Workbench ... 11
概要 ... 11
サポートするデータベース ... 12
移行プロセス ... 12
コード変換 ... 12
拡張性 ... 12
基本的な拡張機能... 13
レポートの共有 ... 13
タブの追加 ... 13
結論 ... 13
データベース開発者のための Oracle SQL Developer
はじめに
Oracle SQL Developer は、生産性の向上とデータベース開発作業の簡素化を実現す る、グラフィカルなインタフェースを備えた無償のツールです。Oracle データベー ス開発者向けに設計されたこのツールを使用すると、開発サイクルを簡素化でき ます。また、SQL や PL/SQL のコードを開発したりデバッグしたりするために、 サード・パーティ製のツールを購入する必要性が減少します。Oracle SQL Developer を使用すると、データベース・オブジェクトの参照、作成、変更、SQL 文の実行、 PL/SQL の編集とデバッグ、多くの事前定義のレポートの実行、ユーザー固有のレ ポートの作成などが可能になります。また、ユーザーは、MySQL、Microsoft SQL Server、Microsoft Access などの Oracle 以外のデータベースで、オブジェクトやデー タを参照するためにデータベース接続を作成したり、これらのプラットフォーム から Oracle へオブジェクトやデータを移行したりすることも可能です。 このツールの追加は生産性を改善し、データベース開発者コミュニティの必要性 をサポートすることへのオラクルの取組みをさらに示すものです。 Oracle SQL Developer が最初に製品リリースされたのは、2006 年 3 月のことです。 最新版の Oracle SQL Developer リリース 1.2 は、2007 年 6 月より提供が開始され ています。このホワイト・ペーパーは、Oracle SQL Developer で利用できる多くの 機能の概要を紹介します。対象者
Oracle SQL Developer は、業務のほとんどをデータベースに費やしているデータ ベース開発者のために設計されました。また、アプリケーション開発者および DBA もサポートします。Oracle SQL Developer は、データベース開発作業を簡素 化し、開発者の生産性を向上させることができます。おもな利点
Java で開発された Oracle SQL Developer は、Windows、Linux、および Mac OS X 上で稼働します。これは、さまざまなプラットフォームを使用する開発者が増え ている現状での大きな利点となります。また、複数のプラットフォームをサポー トすることで、ユーザーはデータベース・サーバーに Oracle SQL Developer をイ ンストールし、デスクトップからリモート接続してクライアント・サーバーのネッ トワーク・トラフィックを回避することも可能になります。データベースへのデ フォルト接続は、JDBC Thin ドライバ経由となります。そのため、Oracle Home は 必要ありません。Oracle SQL Developer のインストールは、ダウンロードした zip ファイルを解凍するだけです。
ツールは、Oracle Database 10g および Oracle9i DatabaseRelease 2 (9.2.0.1)以降のすべ てのリリースで利用できます。さらに、Oracle SQL Developer は、Oracle Database 10g Enterprise Edition、Standard Edition、Standard Edition One といった Oracle Database 10g の全エディションでの稼働が保証されています。
アーキテクチャ
Oracle SQL Developer は、Oracle JDeveloper IDE を使用して Java で開発されました。 その意味で、Oracle JDeveloper IDE に基づいて独自にブランド化された初めての製 品と言えます。この他、Windows クライアントをサポートする tools.jar が追加さ れた JRE 1.5 をバンドルした別のディストリビューションも提供しています。 Windows 以外のクライアントであれば、JDK 1.5 だけが必要です。Oracle SQL Developer 1.2 は、JDK 1.5(5.0)または JDK 6.0 での実行が保証されています。
おもな特長
接続の管理
Oracle SQL Developer では、シンプルなダイアログを通じて格納されたデータベー ス接続を作成できます。この接続を使用して、データベースの参照、スキーマ・ オブジェクトの作成、非定型の SQL 文の実行と調整、データ・ディクショナリに 対するレポートの実行、PL/SQL の作成、実行、およびデバッグを行います。 データベースへのデフォルト接続は、JDBC Thin ドライバ経由となります。接続 ダイアログの Basic タブにあるフィールドにデータベースの詳細を入力するだけ です。ただし、tnsnames.ora ファイルを設定している場合は、接続ダイアログの TNS タブにあるエイリアスを代わりに使用することもできます。 図 1:接続の管理 接続数が多い場合は、XML ファイルをエクスポートできます。これは特に、別の クライアントに接続を複製する際に便利です。インポートまたはエクスポートす る場合、接続を複数またはすべて選択できます。新しいデータベース接続を作成する場合は、パスワードを保存するか選ぶことが できます。パスワードは暗号化されますが、マシン上のファイルと同様に、通常 のファイル・システムでのセキュリティ・リスクが存在します。その点ではパス ワードを保存しない方が良い場合があります。
SQL Worksheet での構文の実行
データベース接続を作成し、それを用いて接続すると、SQL Worksheet ウィンド ウが自動的に開きます。 SQL Worksheetは、SQL、PL/SQL、およびSQL *Plusコマンドの作成をサポートし ます。表の作成、データの挿入、トリガーの作成と編集、表からのデータの選択、 データのファイルへの保存など、SQL Worksheetと関連したデータベース接続で処 理できる動作すべてを指定できます。 複数の SQL 文を記述し、個別または同時に実行することもできます。文にカーソ ルを置き、「Execute Statement (F9)」を選択すると、単一の文が実行され、Results タブに結果が表示されます。「Run Script (F5)」オプションを選択すると、選択 ボックス内のすべての SQL 文が実行され、結果が Script Output タブの下に表示されます。DBMS Output 文および OWA 文を含むすべてのスクリプトの出力結果は、
DBMS Output ペインおよび OWA Output ペインにそれぞれ表示されます。 Execute 文を用いて最後に実行されたコマンドのすべては SQL History リストに保 存され、呼び出すことができます。SQL History リストはセッション以外でも参照 でき、Oracle SQL Developer を再起動する際に再度開くことができます。 このほか、SQL Worksheet では Autotrace 機能および Explain Plan 機能も提供され ています。Explain Plan アイコンからは、選択した SQL 文の実行計画を参照でき ます。追加調整を行う場合は、Code Snippets ウィンドウが提供するオプティマイ ザ・ヒントの一覧からワークシートにドラッグします。スニペットとは、SQL ファ ンクション、オプティマイザ・ヒント、またはさまざまな PL/SQL プログラミン グ手法のようなコード片のことで、ユーザーはこれらを PL/SQL エディタや SQL Worksheet にドラッグできます。
図 2:Explain Plan の表示
データベースの参照
データベース接続を作成すると、Database Navigator を使ってデータベース・スキー マ内のさまざまなオブジェクトを参照できるようになります。たとえば、表、 ビュー、インデックス、パッケージ、プロシージャ、ファンクション、トリガー、 型、シーケンス、マテリアライズド・ビューとマテリアライズド・ビュー・ログ、 シノニムとパブリック・シノニム、データベース・リンク、ディレクトリがあり ます。また、データベース接続では、その他のユーザーやリサイクル・ビン内の コンテンツを表示できます。 データベースを参照する重要な側面は、一目でオブジェクトの定義を確認できる ことにあります。たとえば、ナビゲータ内の表を選択すると、列、制約、権限、 統計、トリガー、およびその他多くの詳細すべてが、タブ化されたウィンドウに 分かりやすく表示されます。また、詳細な検証をするために、表からデータを素 早く取得できます。 図 3:表ビューアを使用したデータベースの参照Data タブでは、新しい列を追加したり、データを更新して変更をデータベースに 送信したりできます。データ・グリッドからのデータの更新には、LOB 列の更新 も含まれます。 製品全体にあるすべてのデータ・グリッドは、INSERT 文、SQL Loader、CVS、テ キスト、XML、HTML、XLS など、さまざまな形式にデータをエクスポートする オプションを提供します。このほか、XLS 形式でもデータをインポートできます。
スキーマ・オブジェクトの作成および編集
Oracle SQL Developer では、SQL Worksheet の SQL 文を実行することで、さまざま なスキーマ・オブジェクトを作成できます。他に、コンテキスト・メニューから もスキーマ・オブジェクトを作成できます。オブジェクトを作成すると、エディッ ト・ダイアログまたは数あるコンテキスト関連のメニューで編集できます。 図 4:オブジェクトの作成
SQL 文の生成
前述したとおり、Connections Navigator ではデータベース・オブジェクトの作成、 編集、および更新を行うことができます。新しいオブジェクトが作成されるか既 存のオブジェクトが編集されると、それらを DDL から確認できます。スキーマ内 で 1 つ以上のオブジェクトに対して完全な DDL を作成する場合は、Export DDL オプションを利用します。PL/SQL 開発
コード・エディタでの PL/SQL の作成および編集
Oracle SQL Developer は、カスタマイズ可能な PL/SQL 構文の強調表示機能に加え て、ブックマーク、コード・コンプリーション、コード・フォールディング、検 索、置換などの一般的なエディタ機能を含む、PL/SQL プログラム・ユニットで使 用する全機能が搭載されたエディタが含まれています。エディタで提供されるコ ンプリーション・インサイトは、部分的に記述されたコードに対してポップアッ プ・リストを表示し、選択しながら完成することができる機能です。たとえば、[Ctrl]キーを押しながら[Space]キーを押し、DBMS_OUTPUT.と入力す ると、そのパッケージ内のメンバーのリストから選択できるようになります。デ フォルトでは、ピリオド(.)を入力してから 1 秒以上が経過すると、コード・イ ンサイトは([Ctrl]キー+[Space]キーを押さなくても)自動的に起動します。 図 5:コード・コンプリーションを表示する PL/SQL エディタ コード・エディタで PL/SQL コードを編集すると、コンパイルまたはデバッグ用 のコンパイルができます(コンパイル用デバッグは、デバッグ用にコンパイルさ れた PL/SQL ライブラリ付き PL/SQL をコンパイルします)。コンパイルでは、デー タベースに再コンパイルするためのソース・コードを送信し、プログラムを保存 します。コンパイル中に発生した構文エラーは、Log ウィンドウに表示されます。 さらに、ナビゲータ内のアイコンは、マージン内のマーカーと同様、無効なコー ドを示します。構文エラーのソースへは、Log ウィンドウ内のエラー・メッセー ジをダブル・クリックするか、マージン内のマーカーを使用して移動します。
PL/SQL プロシージャ、ファンクション、パッケージの実行
PL/SQL プロシージャ、ファンクション、およびパッケージは、ナビゲータ内のオ ブジェクトを右クリックして、コンテキスト・メニューから「Run」を選択する ことで実行できます。ダイアログには引数の詳細が表示され、ファンクションに 関しては選択したオブジェクトの戻り値が表示されます。選択したオブジェクト がパッケージの場合、ダイアログにはパッケージの仕様内で定義されたプロシー ジャおよびファンクションのリストが表示されます。これらのプロシージャまた はファンクションから選択して実行できます。図 6:プロシージャの引数を表示したダイアログ Run PL/SQL ダイアログを起動すると、PL/SQL プログラム・ユニットを呼び出す コードが自動的に生成されます。このコードのパラメータの初期化や受け渡しな どは、ダイアログ内で直接編集できます。さらに、編集したコードをプログラム で次に実行する際に再利用できるよう、保存することもできます。 DBMS_OUTPUT を呼び出す PL/SQL プログラムを実行すると、結果は Log ウィン ドウに表示されます。同じように、ファンクションの戻り値や OUT パラメータの 値も Log ウィンドウに表示されます。
PL/SQL のデバッグ
Oracle SQL Developer は、Oracle9i Database Release 2 および Oracle Database 10g に 対して PL/SQL デバッグを完全サポートします。
おもな PL/SQL デバッグ機能は、次のとおりです。
• プログラム実行の制御:Oracle SQL Developer の PL/SQL デバッガは、Step Into、 Step Over、Step Out、Run to Cursor、Pause、Resume、および Terminate を含む プログラム実行の制御コマンドを多数提供します。
• 変数の表示および編集:デバッガが一時停止しているとき、Smart Data ウィン ドウ、Data ウィンドウ、Watches ウィンドウ、または Inspector ウィンドウか ら変数を確認および編集できます。 • カスタマイズ可能なブレーク・ポイント:Oracle SQL Developer のブレーク・ ポイントは、高度な設定が可能です。PL/SQL デバッグでは、ソース・ブレー ク・ポイント(特定のプログラム・ユニット内にある実行可能なコードの特 定の行と関連)および例外ブレーク・ポイント(取り扱っていない例外、ま たは特定の Oracle の例外と関連)を使用できます。また、PL/SQL の条件ブレー ク・ポイントを定義し、ブレーク・ポイントの動作をカスタマイズすること も可能です。たとえば、デバッガを一時停止したり(デフォルト)、ビープ 音を鳴らしたり、テキスト・ファイルに頻度をログしたり、その他のブレー ク・ポイントを有効化または無効化したりすることができます。
PL/SQL デバッグ情報は、Oracle SQL Developer のいくつかのウィンドウから提供 されます。次のリストは、デバッグ中に提供される情報の例を示しています。 • コード・エディタ:実行ポイントを表示します。Flyover ツール・チップには、 ポインタの下に変数の名前と値を表示します。 • Breakpoints ウィンドウ:定義されたブレーク・ポイントのリストです。この ウィンドウで新しいブレーク・ポイントを追加するか、または既存のブレー ク・ポイントの動作をカスタマイズできます。 • Data ウィンドウ:現在範囲となっている変数すべてを表示します。表示され るのは、パッケージ変数、パッケージ・ボディ変数、現在のプロシージャま たはファンクションで宣言されている変数、ローカル変数(ネスト化された ブロックで宣言されたもの、または非明示的に宣言されたもの)などです。 • Watches ウィンドウ:ウィンドウのコンテキスト・メニューで「Add Watch」
を選択して式を入力したか、その他のウィンドウ(Data ウィンドウなど)か ら Watches ウィンドウへ変数をドラッグするなどして、Watches ウィンドウに 追加した式や変数を表示します。 • Stack ウィンドウ:実行スタックを表示します。Stack ウィンドウを使用して、 デバッガ内のコンテキストを変更できます。
その他の PL/SQL デバッグ機能
• PL/SQL コレクション:DBMS_DEBUG API では、表、レコード、カーソルな どの PL/SQL コレクションのサポートを制限しました。Oracle SQL Developer で Oracle9i Release 2 データベース内の PL/SQL をデバッグすることで、コン ポジット PL/SQL 構造へフル・アクセスできます。たとえば、PL/SQL プログ ラムがレコード内の PL/SQL 表を使用している場合、Data ウィンドウ内の表 オブジェクトを開いてレコードを表示し、レコードを開いてフィールドを表 示してからフィールドを選択すれば、すぐに値を編集できます。 • リモートでのデバッグ:JDWP を実装したことで、Oracle SQL Developer はサー バー側のコードに対してリモートでデバッグする機能を利用できるようにな りました。PL/SQL をリモートでデバッグするには、Oracle SQL Developer デ バッガ・リスナーを起動し、デバッグしたいデータベース・セッションから リスナーにアタッチさせます。 PL/SQL デバッグを有効にする場合、必要な権限を確認する必要はありません。詳 しくは、Oracle SQL Developer のヘルプを参照してください。リモートでの PL/SQL のデバッグ
Oracle SQL Developer を用いてローカルで PL/SQL をデバッグするには、デバッガ を一時停止させたいブレーク・ポイントを設定してから、PL/SQL プロシージャ、 ファンクション、またはパッケージをナビゲータで選択し、「Debug」ボタンを 押します。この場合、Oracle SQL Developer はユーザーの介入なしでデバッグ・セッ ションを開始し、接続してからブレーク・ポイントに達すると一時停止します。 ローカルでのデバッグを別の方面から見ると、Oracle SQL Developer はデバッグを 起動するクライアントと言えます。PL/SQL をリモートでデバッグするということは、たとえば、PL/SQL の Web アプ リケーション、OCI プログラム、SQL*Plus セッションなど、Oracle SQL Developer の外部にあるクライアントからデバッグ動作を起動することと同じです。この場 合、Oracle SQL Developer が実行すべき作業のいくつかをユーザーが主導で作業す る必要があります。
データベースのレポート
Oracle SQL Developer は、データベースおよびそのオブジェクトに関する多くの定 義済みレポートを提供します。どのレポートも SQL Worksheet に渡すことで、さ らに編集を加えることができます。ほとんどのデータベース開発者は、実行した い自分だけのレポート一式を持っています。Oracle SQL Developer であれば、繰り 返し使用できるユーザー定義のレポートを作成および保存できます。 図 7:クリック・スルー・レポートOracle Migration Workbench
概要
Oracle SQL Developer 1.2 には、直感的に操作可能な Oracle Migration Workbench が 実装されています。これは、ポイント・アンド・クリックするだけで、スキーマ・ オブジェクト、トリガー、ストアド・プロシージャなどを含むサード・パーティ のデータベースを Oracle9i Database または Oracle Database 10g へ移行できるツール です。
サポートするデータベース
現行の Oracle Migration Workbench は、Microsoft SQL Server、Microsoft Access、お よび MySQL から Oracle への移行をサポートしています。これらデータベースで サポートするリリースは、Microsoft Access versions 97、2000、2002/XP および 2003、 Microsoft SQL Server 7、2000、および 2005、MySQL versions 3、4、5 です。
移行プロセス
Oracle Migration Workbench は、データベース移行を簡単かつ素早く実行するため のオプションを提供しています。このほか、段階的移行も提供しており、ユーザー は移行プロセスの各段階を管理することができます。
これらの方法は、いずれも移行リポジトリを利用します。Oracle Migration Workbench は、サード・パーティのデータベースから情報を抽出し、リポジトリ内に格納し ます。それが、ソース・モデルです。ソース・モデルは、Captured Objects ウィン ドウから編集できます。ソース・モデルに問題がなければ、Oracle Migration Workbench で同等の Oracle モデルを生成します。これもリポジトリ内に格納され ており、Converted Objects ウィンドウに表示されます。このソースも、必要に応 じて確認したり編集したりできます。ソース・モデルまたは Oracle モデルに加え た変更は、いずれも実行中のデータベースとは別に実行されます。これは、本番 環境ではなくリポジトリ内で実行されているからです。Oracle モデルに問題がな ければ、Oracle Migration Workbench で DDL スクリプトを生成し、Oracle データベー スに対して実行します。最後に、サード・パーティのデータベースを Oracle デー タベースに移行するかどうかのオプションを選択します。
コード変換
Oracle Migration Workbench は、Transact SQL または Microsoft Access SQL で定義さ れ、格納されたプログラム、プロシージャ、ファンクション、トリガー、制約、 およびビューの変換をサポートします。
• Translation Scratch Editor:これは Transact SQL および Microsoft Access SQL の ためのインタラクティブなエディタ機能で、コードを PL/SQL または SQL へ 変換します。単一文または SQL スクリプト全体を変換できます。
• Translation Difference Viewer:これは、変換した SQL を確認するためにインラ インの違いを表示するビューアで、変換した SQL を色分けして比較し、ソー ス・コードと変換コードの意味類似性を表示します。
拡張性
Oracle SQL Developer は、Oracle JDeveloper IDE で開発されました。つまり、Oracle 内および Oracle 外から拡張 API を利用できるということです。さらに、基本的な スペル・チェッカーからより複雑な拡張まで、特定の機能の一部を利用したいチー ム・ユーザーまたは個人ユーザーも、API を使用して希望する機能を追加できま す。拡張は、チーム間でのレポートの共有、コンテキスト・メニューやタブの追 加といった単純なものから、ウィザード主導のユーティリティといった複雑なも のまでさまざまです。また、SQL の知識しかない人も、上級者で XML の知識が ある人でも、ポイント・アンド・クリックにより簡単に拡張を作成できます。
基本的な拡張機能
レポートの共有
共有レポート・フォルダの作成は、Oracle SQL Developer に追加できる簡単な拡張 です。コードを記述したり、この目的のための"フック"を使用したりする必要が ないためです。レポートを共有するには、まずレポートを個別に、またはレポー トのフォルダをファイルへエクスポートします。ファイルは、レポートを再利用 するユーザーの誰もがアクセスできるサーバー内に置きます。「Tools」、「Preferences」の順にクリックし、User Defined Extension 型を「REPORT」に設定 してファイルの場所を追加します。Oracle SQL Developer を再起動すると、新しく Shared Reports ノードが表示されるようになります。
タブの追加
Oracle SQL Developer にコンテキスト・メニューまたはタブを追加するには、SQL と XML の両方の知識が必要です。SQL は実行するためのコマンドを、XML はコ マンドのフレームワークを提供します。表定義に Column Comments を表示するためのタブを追加するには、colcomm.xml というファイルを作成し、次のコードを追加します。
<items>
<item type="editor" node="TableNode" vertical="true"> <title><![CDATA[Column Comments]]></title>
<query>
<sql><![CDATA[select * from ALL_COL_COMMENTS where owner = :OBJECT_OWNER and
table_name = :OBJECT_NAME]]></sql> </query>
</item> </items>
同じように、Preferences ダイアログを使用し、User Defined Extension を新しく追 加します。User Defined Extension 型を「EDITOR」に設定します。colcomm.xml ファイルの場所を設定します。Oracle SQL Developer を再起動して、新しい拡張を 登録します。
結論
Oracle SQL Developer は、データベース開発者がデータベースの参照、問合せ、更 新、レポートの実行、PL/SQL の作成、編集、およびデバッグをするための堅牢な クライアント・ツールです。Oracle SQL Developer はすべて Java で開発されてい るため、さまざまなプラットフォームで実行でき、Windows クライアントを使用 してリモート・サーバーから Oracle SQL Developer へリモートでアクセスできま す。このように、ネットワーク上ではなくサーバーで問合せを実行することで、 ネットワーク・トラフィックを削減します。 このホワイト・ペーパーでは、データベース開発者をサポートする Oracle SQL Developer のさまざまな機能を紹介しました。 Oracle SQL Developer について詳しくは、以下のサイトを参照してください。 US OTN(英語): http://www.oracle.com/technology/products/sql_developer/index.html OTN-Japan : http://www.oracle.com/technology/global/jp/products/database/sql_developer/index.html
データベース開発者のための Oracle SQL Developer 2007 年 6 月 著者:Sue Harper Oracle Corporation World Headquarters 500 Oracle Parkway Redwood Shores, CA 94065 U.S.A. 海外からのお問合せ窓口: 電話:+1.650.506.7000 ファクシミリ:+1.650.506.7200 www.oracle.com
Copyright © 2003, Oracle. All rights reserved.
本文書は情報提供のみを目的として提供されており、ここに記載される内容 は予告なく変更されることがあります。本文書は一切間違いがないことを保 証するものではなく、さらに、口述による明示または法律による黙示を問わ ず、特定の目的に対する商品性もしくは適合性についての黙示的な保証を含 み、いかなる他の保証や条件も提供するものではありません。オラクル社は 本文書に関するいかなる法的責任も明確に否認し、本文書によって直接的ま たは間接的に確立される契約義務はないものとします。本文書はオラクル社 の書面による許可を前もって得ることなく、いかなる目的のためにも、電子 または印刷を含むいかなる形式や手段によっても再作成または送信すること はできません。Oracle は米国 Oracle Corporation およびその子会社、関連会 社の登録商標です。その他の名称はそれぞれの会社の商標です。