1.6.6 埋込み変数へのナル値の既定値設定
FETCH文,SELECT文,EXECUTE文,及びEXECUTE IMMEDIATE文で埋込み変数にデータを取り出す場合,取り出した値がナル値のとき,標識変数には負の値が設定されます。このときの埋込み変数の値は保証しません。ただし,埋込み変数へのナル値の既定値設定機能を使用すると,埋込み変数に既定値が設定されます。また,ナル値のデータに対しても標識変数を指定する必要はありません。ただし,この機能はデータを取り出す場合にだけ適用されます。
既定値設定機能を使用するには,UAPの実行時に,クライアント環境定義でPDDFLNVALを設定しておく必要があります。
クライアント環境定義については,マニュアル「HiRDB UAP開発ガイド」を参照してください。
分 類 |
データ型 |
既定値 |
|
---|---|---|---|
数データ |
INTEGER |
0 |
|
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バイトの空白 |
||
日付データ |
DATE |
1年1月1日 |
|
時刻データ |
TIME |
0時0分0秒 |
|
時刻印データ |
TIMESTAMP |
1年1月1日0時0分0秒※3 |
|
日間隔データ |
INTERVAL YEAR TO DAY |
0か年0か月0か日間 |
|
時間隔データ |
INTERVAL HOUR TO SECOND |
0時間0分0秒間 |
|
長大データ※4 |
BLOB(n) |
長さ0バイトのデータ |
|
バイナリデータ※4 |
BINARY(n) |
長さ0バイトのデータ |
- 注
-
単純構造,繰返し構造のデータの各要素についてもこの表に従います。繰返し構造のデータ全体がナル値の場合,現在の要素数として0が設定されます。
- 注※1
-
WRITE指定の結果の場合は,IPアドレスとなります。
- 注※2
-
HiRDBで扱う文字コードに依存します。
- (例)
-
シフトJISの場合:X'8140'
また,クライアント環境定義のPDSPACELVL,又はシステム共通定義のpd_space_levelオペランドで空白変換レベルを設定している場合,埋込み変数に設定した空白も変換対象となります。そのため,NCHARの空白がn×2バイト,又はNVARCHARの空白が2バイトに変換される場合があります。
- 注※3
-
小数秒精度を指定した場合は,指定したけた数分0が設定されます。
- 注※4
-
位置付け子を用いた場合,位置付け子の埋込み変数には,サーバ上の長さ0バイトのデータを識別する値が設定されます。