1.6.6 埋込み変数へのナル値の既定値設定

FETCH文,SELECT文,EXECUTE文,及びEXECUTE IMMEDIATE文で埋込み変数にデータを取り出す場合,取り出した値がナル値のとき,標識変数には負の値が設定されます。このときの埋込み変数の値は保証しません。ただし,埋込み変数へのナル値の既定値設定機能を使用すると,埋込み変数に既定値が設定されます。また,ナル値のデータに対しても標識変数を指定する必要はありません。ただし,この機能はデータを取り出す場合にだけ適用されます。

既定値設定機能を使用するには,UAPの実行時に,クライアント環境定義でPDDFLNVALを設定しておく必要があります。

クライアント環境定義については,マニュアル「HiRDB Version 8 UAP開発ガイド」を参照してください。

なお,既定値設定機能は,リモートデータベースアクセスでは使用できません。

埋込み変数に設定されるナル値の既定値を次の表に示します。

表1-22 埋込み変数に設定されるナル値の既定値

分 類データ型既定値
数データINTEGER0
SMALLINT
DECIMAL
LARGE DECIMAL
FLOAT
SMALLFLT
文字データCHARACTER(n)既定文字集合又は
文字集合(UTF16以外)
nバイトの空白
文字集合(UTF16)n/2文字の空白
VARCHAR(n)既定文字集合又は
文字集合(UTF16以外)
1バイトの空白※1
文字集合(UTF16)1文字の空白
各国文字データNCHAR(n)n文字の空白※2
NVARCHAR(n)1文字の空白※2
混在文字データMCHAR(n)nバイトの空白
MVARCHAR(n)1バイトの空白
日付データDATE1年1月1日
時刻データTIME0時0分0秒
時刻印データTIMESTAMP1年1月1日0時0分0秒※3
日間隔データINTERVAL YEAR TO DAY0か年0か月0か日間
時間隔データINTERVAL HOUR TO SECOND0時間0分0秒間
長大データ※4BLOB(n)長さ0バイトのデータ
バイナリデータ※4BINARY(n)長さ0バイトのデータ
単純構造,繰返し構造のデータの各要素についてもこの表に従います。繰返し構造のデータ全体がナル値の場合,現在の要素数として0が設定されます。
注※1
WRITE指定の結果の場合は,IPアドレスとなります。
注※2
HiRDBで扱う文字コードに依存します。
(例)
シフトJISの場合:X'8140'
また,クライアント環境定義のPDSPACELVL,又はシステム共通定義のpd_space_levelオペランドで空白変換レベルを設定している場合,埋込み変数に設定した空白も変換対象となります。そのため,NCHARの空白がn×2バイト,又はNVARCHARの空白が2バイトに変換される場合があります。
注※3
小数秒精度を指定した場合は,指定したけた数分0が設定されます。
注※4
位置付け子を用いた場合,位置付け子の埋込み変数には,サーバ上の長さ0バイトのデータを識別する値が設定されます。