Hitachi

ノンストップデータベース HiRDB Version 10 SQLリファレンス


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

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

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

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

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

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

分 類

データ型

既定値

数データ

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バイトのデータを識別する値が設定されます。