このチュートリアルでは、Oracle SQL Developerを使用したPL/SQLプロシージャの作成、実行、デバッグ方法について説明します。
約30分
Oracle SQL Developerは、生産性を強化し、データベース開発作業を簡素化する無償のグラフィカル・ツールです。 Oracle SQL Developerを使用すると、データベース・オブジェクトを参照し、SQL文とSQLスクリプトを実行し、PL/SQL文を編集およびデバッグすることができます。 また、提供されているレポートを実行したり、独自のレポートを作成して保存したりすることも可能です。 このチュートリアルでは、PL/SQLの作成、コンパイル、実行、デバッグを中心に説明します。
このチュートリアルを始める前に以下のことを確認してください。
|
. |
Oracle SQL Developer 3.0をOTNサイトからダウンロードして、インストールしていること。 指示に従ってインストールしていること。 |
|---|---|
|
. |
Oracle Database 11gおよびサンプル・スキーマをインストールしていること。 |
|
. |
HRユーザーをアンロックしていること。 SYSユーザーとしてSQL Developerにログインし、次のコマンドを実行します。 注: このチュートリアルは、Oracle SQL Developer 3.0を使用して開発されています。 ただし、Oracle SQL Developer 2.1.1を使用することもできます。 |
|---|
|
. |
files.zipをダウンロードし、ファイル・システム上のローカル・フォルダに解凍していること。 このチュートリアルでは、C:\sqldev3.0フォルダを使用しています。 |
|---|
Oracle SQL Developer 3.0を使用してデータベース・オブジェクトを管理するための最初の手順は、データベース接続を作成することです。 次の手順を実行します。
|
. |
デスクトップにSQL Developerアイコンがインストールされている場合、アイコンをクリックしてSQL Developerを起動したら、ステップ4へ進みます。デスクトップにアイコンがない場合は、次の手順を実行して、SQL Developer 3.0をデスクトップから直接起動するためのショートカットを作成します。 SQL Developer 3.0がインストールされているディレクトリを開き、「sqldeveloper.exe」(Windowsの場合)または「sqldeveloper.sh」(Linuxの場合)を右クリックして「Send to」→「Desktop (create shortcut)」を選択します。
|
|---|---|
|
. |
デスクトップ上に、sqldeveloper.exeへのショートカットが作成されています。 このアイコンをダブルクリックして、SQL Developer 3.0を開きます。 注: アイコンの名前を変更するには、アイコンを選択してから[F2]キーを押し、新しい名前を入力します。
|
|
. |
Oracle SQL Developerが表示されます。
|
|
. |
Connectionsタブで、「Connections」を右クリックし、「New Connection」を選択します。
|
|
. |
New/Select Database Connectionダイアログが表示されます。 次の接続情報を入力し、「Test」をクリックします。 Connection Name: HR_ORCL
|
|
. |
左下(Helpボタンの上)に表示される接続ステータスを確認します。 Successと表示されているはずです。 「Connect」をクリックします。 「Save」をクリックします。
|
|
. |
接続が保存され、新しく作成した接続がConnectionsリストに表示されます。 接続が作成されると、自動的にSQL Worksheetが開きます。 SQL Worksheetを使用すると、先ほど開いた接続に対してSQLを実行できます。 「HR_ORCL」接続を展開します。
|
ここでは、PL/SQLプロシージャの作成、編集、コンパイルを実行します。 次の手順を実行します。
|
. |
Connectionsナビゲータで、「Procedures」ノードを右クリックし、コンテキスト・メニューから「New Procedure」を選択します。
|
|---|---|
|
. |
プロシージャ名としてEMP_LISTと入力し、「
|
|
. |
プロシージャが作成されました。 注: この時点で作成されているのは、プロシージャの枠組みのみです。 次のステップでは、このプロシージャ内にPL/SQLコードを追加していきます。
|
|
. |
次のPL/SQLコードを新しいコードで置き換えます。 BEGIN
NULL;
END EMP_LIST;
新しいコード: (注: このコードは、前提条件セクションでファイルを解凍したディレクトリにあるemp_cursor.sqlファイルに含まれています。) CURSOR emp_cursor IS Oracle SQL Developerによって予約語が整形されている点に注意してください。 さらにコードを整形するには、コード・エディタ内を右クリックし、サブメニューから「Format」を選択します。
|
|
. |
コンパイル・エラーが生じた場合は、エラー・メッセージが表示されます。
|
|
. |
ナビゲータで「Procedures」を展開すると、EMP_LISTが表示されます。
Oracle SQL Developerによって無効なPL/SQLサブプログラムが検出された場合、Connectionsナビゲータで、無効のステータスを示す赤いX印がそのサブプログラムのアイコン上に表示されます。
|
|
. |
コンパイル・エラーがログ・ウィンドウに表示されています。 エラーをダブルクリックするだけで、そのエラーが報告されている行へ移動できます。 また、Oracle SQL Developerでは右側の余白にエラーとヒントが表示されています。 余白に表示された赤い横線にカーソルを合わせると、エラー・メッセージが表示されます。 ここでは、LOOP文に書式エラーがあることを示すエラー・メッセージが表示されています。 コードを詳しく確認すると、WHILE文に余分な丸括弧が含まれていることが分かります。 この余分な丸括弧を削除します。
|
|
. |
「Compile」をクリックします。
|
|
. |
プロシージャが正しくコンパイルされました。 これで、プロシージャを実行する準備が整いました。
注: Proceduresノードに表示されたプロシージャのアイコン上に、赤いX印が表示されたままになっている場合、「refresh」アイコンをクリックしてください。 緑色のオーバーレイは、このプロシージャがデバッグ用にコンパイルされていることを意味します。 オーバーレイが表示されない場合、このプロシージャはデバッグ・ディレクティブなしでコンパイルされています。 これらはプリファレンス設定とコンパイルのドロップダウン・リスト・オプションによって制御されています。 SQL Developerでのデフォルトは、"Compile for Debug"です。
|
PL/SQLプロシージャを作成し、コンパイルしたら、Oracle SQL Developerを使用してこれを実行します。 次の手順を実行します。
|
. |
Connectionsナビゲータの「EMP_LIST」を右クリックし、「Run」を選択します。
|
|---|---|
|
. |
Run PL/SQLダイアログが表示されます。 Run PL/SQLダイアログでは、実行対象のプロシージャまたはファンクションを選択することができ(パッケージの場合に有用)、選択したプログラムのパラメータ・リストが表示されます。 PL/SQLブロックのテキスト領域には生成されたコードが表示されており、Oracle SQL Developerがプログラムを呼び出す際に使用されます。 この領域を使用すると、プログラム・ユニットに渡すパラメータの値を代入したり、複雑な戻り型を処理したりすることができます。 EMP_LISTプロシージャには、PMAXROWSという名前のパラメータが定義されています。 Run PL/SQLダイアログで、このパラメータを任意の数値に初期化できます。
PMAXROWS := NULL;からPMAXROWS := 5;へ変更し、「OK」をクリックします。
|
|
. |
Running - Logウィンドウに結果が表示されます。
|
Oracle SQL Developerでは、Oracleデータベースを使用したPL/SQLのデバッグがサポートされています。 ここでは、PL/SQLプロシージャのデバッグを行い、コードをステップ・スルーして実行時に値を変更します。 次の手順を実行します。
|
. |
デバッグしやすいように、Codeウィンドウに行番号を追加できます。 余白を右クリックして、「Toggle Line Numbers」を選択します。
|
|---|---|
|
. |
プロシージャをデバッグするには、はじめにデバッグ用コンパイルを実行する必要があります。 このステップによって、デバッグに必要なコンパイラ・ディレクティブが追加されます。 デバッグが完了したら、プロシージャを再度コンパイルして、余分なディレクティブを削除する必要があります。
|
|
. |
ブレーク・ポイントは、コード内の停止点として指定する場所です。 デバッグ・モードでコードを実行すると、ブレーク・ポイントで実行が停止します。 OPEN emp_cursor;文が記述された行の余白をクリックして、EMP_LISTプロシージャにブレーク・ポイントを設定します。 行番号の代わりに赤い丸印が表示されます。 これがブレーク・ポイント記号です。 次に、「Debug」アイコンをクリックします。
|
|
. |
Debug PL/SQLダイアログでPMAXROWS = 5;のままになっていることを確認し、「OK」をクリックします。
|
|
. |
「Log」タブをクリックします(あらかじめ表示されている場合を除く)。
|
|
. |
ブレーク・ポイントを設定した場所で、デバッガが処理を停止します。 ここで、実行フローの制御や、変数値の変更、またはその他のデバッグ機能を実行できます。 Step Into 「
注: デバッグ中に以下のエラーが発生することを回避するため、前提条件の項で、DEBUG CONNECT SESSIONとDEBUG ANY PROCEDUREのユーザー権限が付与されています。
|
|
. |
カーソルのある最初の行が表示されます。 再度、Step Into「
|
|
. |
これで、カーソルのある最初の行が選択されています。 さらに3回、Step Into「
|
|
. |
「Data」タブを選択します。
|
|
. |
Dataウィンドウに、これから実行するコード行と前に実行されたコード行で使用されている変数のリストが表示されます。
|
|
. |
DBMS_OUTPUT.PUT_LINE(emp_tab(j).last_name);という行を右クリックし、「Run to Cursor」を選択します。
|
|
. |
「EMP_TAB」→「_ values」→「[1]」→「_value」の順に展開します。 表に含まれる特定の行に対して、フィールドの値が表示されます。 「LAST_NAME」フィールドを選択します。
|
|
. |
「LAST_NAME」フィールドを右クリックし、「Modify Value」を選択します。
|
|
. |
名前を別の値(例:James)に変更して、「OK」をクリックします。
|
|
. |
「Debugging - Log」タブを選択します。
ここでは、実行時に変数の値を変更する処理を行いました。 これは、コードをデバッグする際には非常に便利な処理です。
|
|
. |
Resume「
|
|
. |
変更した値がLogウィンドウに表示されていることを確認します。
|
このチュートリアルで学習した内容は、以下のとおりです。
![]()
|
会社情報 |オラクルとサン | |