技術的には、NULL 値はメモリーの空き領域への参照 (言語によってはポインターと呼ばれます) です。参照変数 (データそのものではなく、データのアドレスを含む変数) は常に NULL 可能 です。つまり、自動的に NULL 値を持つことができるようになっています。この概念が複雑なのは、値変数を同様に NULL 可能にすることができるためです。
if (myCustomer != null)
get myCustomer;
end
システム・ライブラリー dateTimeLib および strLib の特定の関数 (例えば、dateTimeLib.timeValue()) は、NULL 値を渡す場合、 または要求した情報が存在しなかった場合に、NULL 値を返すことができます。
myNullableInt INT?;
変数を NULL 可能にすると、その変数が NULL かそうでないかを示すフラグが 変数に提供されます。変数を NULL に設定すると、このフラグが設定されます。
レコードは値変数であることに注意してください。 レコードが NULL 可能で NULL に設定されている場合でも、 そのレコード内のフィールドに引き続きアクセスできます。ただし、 このレコードからデータを出力する I/O ステートメントではヌル・レコードは使用できません。使用すると、 EGL が NullValueException をスローする原因となります。同様に、データをレコードに挿入する I/O ステートメントは、 その NULL 状況を FALSE に設定します。
基本型に代入互換性がある NULL 可能変数は、NULL 可能ではない変数と代入互換性があります。 NULL 可能変数は、全く同じ基本型を持つ別の NULL 可能変数との間にのみ参照互換性があります。詳しくは、NULL 可能型の相互間の代入を参照してください。
サービスに関しては、リモート・サービス呼び出しの引数として NULL 値を送信すると、 データは送信されません。受信側のパラメーターは NULL 可能であるため、 受信側の関数では、欠落データ用に新規に未初期化値が作成され、 要求されたサービス関数に渡されます。
myArrayNullInts INT?[];
Function getCustomer (custNum INT?) returns (CHAR(25)?)
...
end
myCustomer CustomerRecord?;
| プラットフォーム | 問題 |
|---|---|
| JavaScript 生成 | サポートされるデータ型は、ANY、BIGINT、BIN (ただし、小数点以下の桁を含まない場合に限る)、Boolean、DataItem、DATE、DECIMAL、Delegate、Dictionary、FLOAT、INT、NUM、NUMBER、SMALLFLOAT、SMALLINT、STRING (ただし、サイズ制限を含まない場合に限る)、TIME、TIMESTAMP、NUM、MONEY、サービス・パーツ、インターフェース・パーツ、外部型 (ステレオタイプ JavaScript)、サポートされるデータ型による配列、
および非構造化の基本、例外、および SQL レコード・パーツです。 サポートされないデータ型は、ArrayDictionary、BIN (小数点以下の桁数を含むもの)、BLOB、CHAR、CLOB、DBCHAR、HEX、INTERVAL、MBCHAR、NUMC、STRING (サイズ制限を含むもの)、PACF、UNICODE、および構造化されたレコード・パーツです。 |