Symfoware Parallel Server SQLビギナーズガイド
目次 索引 前ページ次ページ

第4章 カーソルを使用するデータ操作の方法

4.4 カーソルの位置づけおよびデータの取り出し

以下に示すデータ操作を行うためにFETCHを使用します。

FETCH文の指定例を以下に示します。

例1

在庫表から、倉庫番号が“2”の製品の製品番号と在庫数量を取り出すカーソルが宣言されているとします。このカーソルを1行分移動し値を取り出します。

 

例1のFETCH文を実行した結果を“図:FETCH文によるカーソルの位置づけの例”に示します。なお、すでに同じFETCH文が2回実行されており、カーソルは2行目を位置づけている状態とします。

 

[図:FETCH文によるカーソルの位置づけの例]

カーソル名で指定するカーソルの宣言は、応用プログラムの記述の順序でこのFETCH文よりも先に記述されていることが必要です。FETCH文で指定するカーソルは、オープンされていることが必要です。オープンされていないカーソルを指定するとエラーになります。また、カーソルが最終行を位置づけている状態でFETCH文を実行すると、結果の状態は“データなし”になります。カーソルが最終行の直後を位置づけている状態で、FETCH文を実行した場合は“カーソル不当状態”になります。

■取り出したデータを格納するホスト変

取出し相手リストに、カーソルを位置づけた行の値を格納するホスト変を指定します。ホスト変数は、カーソル表の列と同じ数だけ指定することが必要です。取り出した列のデータは、左から数えて同じ順番のホスト変数に格納されます。

■ナル値を含むデータを取り出

ナル値のデータを取り出すには、取り出したデータを格納するホスト変数に、標識変を対にして指定します。指定例を以下に示します。

例2

例1のFETCH文に標識変数を指定した例です。

 

FETCH 在庫表カーソル INTO :ITMNO INDICATOR :ITMNO_INDICATOR ,

                          :STOCKQTY INDICATOR :STOCKQTY_INDICATOR
 

例2では、“ITMNO_INDICATOR”および“STOCKQTY_INDICATOR”が標識変数です。FETCH文で標識変数に格納される値は“表:列の値と標識変数に格納される値”を参照してください。

標識変数を指定しないで、取り出すデータがナル値になると、FETCH文はエラーになります。列の値にナル値が含まれるかどうかが分からない場合には、必ず標識変数を指定してください。


目次 索引 前ページ次ページ

All Rights Reserved, Copyright(C) 富士通株式会社 2006