Oracle アダプタ用の新しい OTD を作成するには、次の手順を実行する必要があります。
新規オブジェクト型定義ウィザードで、OTD の構築に必要なウィザードのタイプを選択します。
プロジェクトツリーで、プロジェクトを右クリックし、ショートカットメニューから「新規」 > 「オブジェクト型定義」の順に選択します。「ウィザードタイプの選択」ページに、使用可能な OTD ウィザードが表示されます。
「新規オブジェクト型定義ウィザード」ウィンドウで、「Oracle データベース」を選択し、「次へ」をクリックします 次の図を参照してください。
「接続情報」フレーム内で、Oracle データベースの接続情報を入力します。
使用するデータベースに関する適切な接続情報を指定します。指定する項目は次のとおりです。
「ホスト名」 - Oracle が存在するサーバー。
「ポート ID」 - Oracle のポート番号。
「SID」 - Oracle インスタンスの名前 (データベース名と同じ)。
「ユーザー名」 - アダプタがデータベースへの接続に使用するユーザー名。
「パスワード」 - データベースへのアクセスに使用するパスワード 。
「次へ」をクリックします。「データベースオブジェクトの選択」ウィンドウが表示されます。
OTD に含める Oracle データベースオブジェクトのタイプを選択します。
「データベースオブジェクトの選択」ダイアログボックス (次の図) で、このサンプルの場合は「テーブル/ビュー/エイリアス」を選択します。データベースオブジェクトを選択するときに、.otd ファイルに含めるテーブル、ビュー、手続き、事前定義文を自由に組み合わせて選択できます。「次へ」をクリックして続行します。
ビューは読み取り専用であり、情報提供のみを目的としています。
「次へ」をクリックして続行します。選択に応じて「テーブル/ビュー/エイリアスの選択」ウィンドウが表示されます。
OTD で必要なテーブルまたはビューのタイプを選択します。
現在のリリースの Oracle アダプタではエイリアスはサポートされません。
「テーブル/ビュー/エイリアスの選択」ウィンドウで、「追加」をクリックします (次の図を参照)。
「テーブルの追加」ウィンドウで、検索に使用する条件のタイプを選択します。「テーブルのみ」、「ビューのみ」、「両方」のいずれかを選択できます。検索にシステムテーブルを含める場合は、「システムテーブルを含む」チェックボックスにチェックマークを付けます。
テーブル/ビュー名のドロップダウンリストから、データベーステーブルの場所を選択し、「検索」をクリックします。テーブル/ビュー名を検索する場合は、テーブル名を入力します。ワイルドカード文字の「?」および「*」をテーブル/ビュー名の検索に使用すると、検索能力を高めることができます。たとえば、「AB?CD」や「AB*CD」のように使用します。
目的のテーブルを選択し、「了解」をクリックします。選択したテーブルが、「選択」ボックスの一覧に追加されます (次の図を参照)。
「選択されたテーブル/ビュー/エイリアス」ウィンドウで、選択されたテーブルを確認します。選択されたテーブルまたはビューに変更を加える場合は、「変更」をクリックします。何も変更を加えない場合は、「次へ」をクリックして続行します。
「選択されたテーブル/ビュー/エイリアス」ウィンドウで「変更」をクリックした場合は、「テーブル/ビューの列」ウィンドウで、テーブルの列を選択または選択解除できます。また、各テーブルのデータ型を変更するには、そのデータ型を強調表示させて、ドロップダウンリストから別のデータ型を選択します (次の図を参照)。
データ型、精度/長さ、またはスケールを変更するには、「詳細」をクリックします。通常は、精度/長さとスケールは変更しないでください。テーブルの選択が完了したら、「了解」をクリックします (次の図を参照)。
事前定義文パッケージを使用する場合は、「生成される Java コードではテーブル/ビューの完全修飾名を使用します。」を選択します。
OTD に必要な手続きを選択します。
「手続きの選択と結果セットおよびパラメータ情報の指定」ダイアログボックスで、「追加」をクリックします。
「手続きの選択」ダイアログボックスで、手続きの名前 (大文字と小文字が区別される) を入力するか、またはドロップダウンリストからテーブルを選択します。「検索」をクリックします。ワイルドカード文字を使用できます。
表示された「手続きの選択」リストボックスで、手続きを選択します。「了解」をクリックします。
「手続きの選択と結果セットおよびパラメータ情報の指定」 ダイアログボックスで、「編集」をクリックし、必要に応じて、選択された手続きに変更を加えます (次の図を参照)。
データ型を復元するには、「復元」をクリックします。完了したら、「了解」をクリックします。
Oracle OTD の ResultSet をウィザードに生成させるには、「ResultSet の編集」をクリックします。
生成する ResultSet のタイプを選択し、「追加」をクリックします。
データベースウィザードでは、3 とおりの方法でストアドプロシージャーの ResultSet ノードを生成できます。「実行時」モード、「手動で」モード、および「アシスタンス」モードです。
「実行時」モード - 「実行時」モードでは、、指定されたストアドプロシージャーをデフォルト値で実行して ResultSet を生成します。ストアドプロシージャーのビジネスロジックに基いて、0 個以上の ResultSet を実行結果として返すことができます。複数の ResultSet がある場合に、「実行時」モードですべての ResultSet が返されないときは、その他のモードを使用して ResultSet ノードを生成してください。
「アシスタンス」モード - 「アシスタンス」モードでは、ユーザーがクエリーを指定し、それを実行して ResultSet ノードを生成できます。この操作を容易にするために、データベースウィザードは、指定されたストアドプロシージャーの内容を取得して表示しようとします。ただし、内容の取得は、全てのタイプのストアドプロシージャーでサポートされているわけではありません。ストアドプロシージャーは、SQL と外部の 2 種類に大きく分類できます。SQL ストアドプロシージャーは、CREATE PROCEDURE SQL 文を使用して作成されます。一方、外部ストアドプロシージャーは、Java などのホスト原語を使用して作成されます。外部ストアドプロシージャーでは、実行プランがデータベースに保存されないため、内容の取得はできません。「アシスタンス」モードを使用するときは、クエリーを実行する前に、テーブル名までを含めた実行文を強調表示させます。
「手動で」モード - 「手動で」モードでは、もっとも柔軟な方法で結果セットノードを生成できます。このモードでは、ユーザーがノード名、元の列名、およびデータ型を手動で指定できます。この方法の欠点の 1 つは、ユーザーが元の列名やデータ型を知っている必要があることです。この方法は常に使用可能とは限りません。たとえば、次のクエリーに「3*C」という列名があります。
SELECT A, B, 3*C FROM table T |
これはデータベースによって生成されます。この場合は、「アシスタンス」モードの方が適しています。
データベースウィザードの「実行」モードで生成された ResultSet を変更する場合は、インデックスがストアドプロシージャーと一致していることを確認する必要があります。これにより、ResultSet インデックスが確実に保持されるようにします。
「手続きの選択と結果セットおよびパラメータ情報の指定」ウィンドウで、「次へ」をクリックして操作を続行します。
事前定義文 OTD は、コンパイルされた SQL 文を表します。OTD の各フィールドは、ユーザーが指定する必要がある入力値に対応します。事前定義文を使用して、挿入、更新、削除、およびクエリーの操作を実行できます。事前定義文では、疑問符 (?) を入力のプレースホルダとして使用します。たとえば、「insert into EMP_TAB (Age, Name, Dept No) values (?, ?, ?)」のようになります。
事前定義文を実行するには、入力パラメータを設定して executeUpdate() を呼び出し、必要に応じて入力値を指定します。
事前定義文を使用するときは、ResultsAvailable() メソッドは常に true を返します。このメソッドは使用可能ですが、while ループでは使用しないでください。while ループで使用すると、実行時に無限ループに入ってしまい、システムのすべての CPU が停止状態になります。使用する場合は、if 文でのみ使用します。next() メソッドによるループで ResultSet を処理できます。
「事前定義文の追加」ダイアログボックスで、「追加」をクリックします。
事前定義文の名前を入力します。次に、「SQL ステートメント」ダイアログボックスで SQL 文クリックするか、または「ステートメントビルダー」ボタンをクリックして SQL 文を作成します。文の作成が完了したら、「名前をつけて保存」をクリックします。この文には、先ほど入力した名前を付けます。この名前がノードとして OTD に表示されます (次の図を参照)。「了解」をクリックします。
「事前定義ステートメントの追加」ダイアログボックスに、事前定義文に割り当てた名前が表示されます。パラメータを編集するには、「パラメータの編集」をクリックします。データ型を変更するには、「タイプ」フィールドをクリックして、リストから別のタイプを選択します。
文にパラメータを追加する場合は、「追加」をクリックします。また、パラメータを削除する場合は、その行を強調表示させて「削除」をクリックします。「了解」をクリックします。
事前定義文を保存したら、事前定義文パラメータの ResultSet 列の名前が、特殊文字 (角括弧など) を含まない有効な英数字文字列であることを確認してください。
ResultSet 列を編集するには、「ResultSet の編集」をクリックします (次の図を参照)。名前とタイプも編集可能ですが、名前は変更しないことをお勧めします。名前を変更すると、ResultSet とデータベースの間で整合性が失われる可能性があります。「了解」をクリックします。
OTD ウイザードでは、複数のテーブルで同じ列名を使用する複雑な事前定義文で OTD を作成することはできません。この問題は、列名エイリアスを使用するように SQL 文を変更することによって解決されます。
「事前定義ステートメントの追加」ダイアログボックスで、「了解」をクリックします。
Java CAPS IDE に表示する OTD の名前を指定します。
新しい OTD に関する選択内容を確認します。