スケーラブルデータベースサーバ HiRDB Version 8 UAP開発ガイド

[目次][索引][前へ][次へ]

3.2.4 SQLを使用した検索方法の分類

SQLを使用して表を検索する場合,大別するとSQLの静的実行と動的実行に分類できます。SQLを使用したときのUAPからの検索方法の分類を次の表に示します。

表3-3 SQLを使用したUAPからの検索方法の分類

検索方法 問合せ内容を指定するSQL
埋込み型UAP 静的SQL 1行SELECT文
カーソル宣言
動的SQL 1行SELECT文
動的SELECT文
<この項の構成>
(1) 1行SELECT文
(2) カーソル宣言
(3) 動的SELECT文

(1) 1行SELECT文

表から1行だけ検索結果を取り出すには,1行SELECT文を使用します。

1行SELECT文を使用すると,カーソルを使用する必要がないため,一つのSQLで検索できます。

1行SELECT文は,次の場合に使用すると有効です。また,UAP実行時に組み立てた1行SELECT文を動的に実行することもできます。

なお,1行だけの検索の場合でも,検索した行を更新したり,削除したりするときは,カーソルを使用する方が処理効率が良いので,場合によって使い分ける必要があります。

(2) カーソル宣言

検索結果が複数行になる場合,UAPでは一度に受け取れないため,カーソルを使用して1行ずつ取り出します。カーソルの宣言から検索の終了までの流れは,次に示すとおりです。

  1. DECLARE CURSORでカーソル宣言をします。
  2. OPEN文を実行すると,カーソルが開いて使用できる状態になります。
  3. FETCH文を実行すると,カーソルが検索結果の1行目を指すので,埋込み変数,又はパラメタ(FETCH文のINTO句で指定した)を使用して検索結果を取り出します。
  4. 再度FETCH文を実行すると,カーソルが次の行へ進むので,1行ずつ検索結果を取り出します。
  5. 検索する行がなくなるまで 4. の操作を繰り返します。
  6. 検索が終了したら,CLOSE文を実行してカーソルを閉じます。

(3) 動的SELECT文

SQLの動的実行によって検索結果を複数行取り出すには,動的SELECT文を使用します。動的SELECT文で検索結果を取り出すには,あらかじめカーソル宣言をしておくか,又はALLOCATE CURSOR文でカーソルを割り当てておく必要があります。カーソル宣言,又はカーソル割り当てをしておくと,UAP実行時に組み立てたSQL文をPREPARE文で前処理した後は,通常のカーソルを使用した検索と同様の操作ができます。