スケーラブルデータベースサーバ HiRDB Version 8 SQLリファレンス

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

1.6.5 標識変数の値の設定

<この項の構成>
(1) データを受け取る場合(FETCH文,SELECT文,EXECUTE文,及びEXECUTE IMMEDIATE文のINTO句)
(2) データを渡す場合(FETCH文,SELECT文,EXECUTE文,及びEXECUTE IMMEDIATE文のINTO句以外)

(1) データを受け取る場合(FETCH文,SELECT文,EXECUTE文,及びEXECUTE IMMEDIATE文のINTO句)

FETCH文,SELECT文,EXECUTE文,及びEXECUTE IMMEDIATE文を実行すると,そのINTO句に指定した標識変数には,次の表に示す値が設定されます。埋込み変数にナル値が返された場合,埋込み変数の値は保証しません。この場合,標識変数の指定がなければ,エラーになります。

表1-17 FETCH文,SELECT文,EXECUTE文,及びEXECUTE IMMEDIATE文で返される標識変数の値(繰返し列以外の場合,及び繰返し列の各要素値の場合)

標識変数の値 対応する埋込み変数が受け取った値
ナル値です。
ただし,標識変数の値が−2の場合は,繰返し列の添字で指定した要素がないときに設定されたナル値です。また,標識変数の値が-4の場合は,SQL実行時に四則演算,集合関数演算,ウィンドウ関数演算,及びオーバフローエラー抑止の対象となるスカラ関数で,オーバフローエラー抑止オプションによって設定されたナル値です。このナル値を受け取った埋込み変数と演算は対応しているので,オーバフローが発生した演算を判別できます。なお,リモートデータベースアクセスの場合,標識変数には−1が設定されます。オーバフローエラー抑止の対象となるスカラ関数については,「2.18 オーバフローエラー抑止が設定されている場合の演算結果」を参照してください。
0 ナル値ではない値です。
ナル値ではない値です。
ただし,受け取ったデータは文字データ,又は長大データで,埋込み変数の長さが不足していたため,右側が切り捨てられた値であることを示します。このときの標識変数には,切り捨てられる前の長さが設定されます。なお,リモートデータベースアクセスの場合,データ型によって標識変数に返される値が異なります。詳細については,表1-18を参照してください。

表1-18 標識変数の値と埋込み変数が受け取る値の関係

サーバ側から返された
標識変数の値
対応する埋込み変数が受け取った値
BLOB型又はBINARY型 そのほかのデータ型
1〜32767 1〜32767 1〜32767
32768〜2147483647 32768〜2147483647 1

表1-19 FETCH文,SELECT文,EXECUTE文,及びEXECUTE IMMEDIATE文で返される標識変数の値(繰返し列全体の情報の場合)

標識変数の値 対応する埋込み変数が受け取った値
ナル値です(要素数が0)。
0 ナル値ではない値です(要素数が1以上)。
ナル値ではない値です(要素数が1以上)。
ただし,埋込み変数の領域の要素数が不足していたため,後の要素が切り捨てられたことを示します。このときの標識変数には,切り捨てられる前の要素数が設定されます。

繰返し列のデータを受け取る場合の標識変数,埋込み変数の構造とその例を次の図に示します。

図1-5 繰返し列のデータを受け取る場合の標識変数,埋込み変数の構造

[図データ]

図1-6 繰返し列のデータを受け取る例(その1)

[図データ]

図1-7 繰返し列のデータを受け取る例(その2)

[図データ]

(2) データを渡す場合(FETCH文,SELECT文,EXECUTE文,及びEXECUTE IMMEDIATE文のINTO句以外)

FETCH文,SELECT文,EXECUTE文,及びEXECUTE IMMEDIATE文以外のSQLを実行する場合,そのSQLの実行前の標識変数には,次の表に示す値をUAPで設定してください。標識変数の値によって,SQLの実行時に対応する埋込み変数の値を使用してください。

表1-20 SQL実行前に設定する標識変数の値(繰返し列以外の場合,及び繰返し列の各要素値の場合)

標識変数の値 対応する埋込み変数がSQLに渡す値
ナル値です。
埋込み変数が持っている値は無視されます。
0又は正 ナル値ではない値です。
埋込み変数が持っている値です。

表1-21 SQL実行前に設定する標識変数の値(繰返し列全体の情報の場合)

標識変数の値 対応する埋込み変数がSQLに渡す値
ナル値です(要素数が0)。
埋込み変数の要素の値は無視されます。
0又は正 要素数が示す要素の値です。
ただし,要素数に0は指定できません。

繰返し列のデータを渡す場合の標識変数,埋込み変数の構造とその例を次の図に示します。

図1-8 繰返し列のデータを渡す場合の標識変数,埋込み変数の構造

[図データ]

図1-9 繰返し列のデータを渡す例(その1)

[図データ]

図1-10 繰返し列のデータを渡す例(その2)

[図データ]