
データレコード内の項目の値が未定義か不明のとき、
NULL 値であるといいます。 NULL 値は、新規の項目を既存のテーブルに挿入するか、
テータベースビューにおける
INSERT
操作を行なった場合に発生します。データベース上にすでに存在するテーブルに新しい項目を挿入する場合、この操作は次の
DDL 命令によってデータベース上で実行されます。ALTER TABLE table name ADD FIELD field name ...
NULL
値は、対応する項目が選択されていない限り、何ら問題はありません。ただし NULL 値を持つ項目が選択されると、選択条件を満たすいくつかのエントリが見つからないことがあります。この理由は、 NULL 値が満たす選択条件は WHERE FIELD IS NULL だけであるためです。
項目項目
1 は、テーブル TAB に挿入されます。 SELECT... FROM TAB WHERE 項目 1 <> 5... を使用してこのテーブルにアクセスする場合、 NULL 値を持つレコードは、 SELECT 命令の WHERE 条件に論理的に合致したとしても、 項目 1 には見つかりません。この例のような状況は、挿入する項目を初期値と定義することで未然に防ぐことができます。これにより、項目はデータベース上に
NOT NULL として登録されます。テーブルが有効化されるときは、テーブル全体がスキャンされ、新しい項目には初期値が設定されます。ただし処理時間がかかることがあります。そのためフラグ 初期値を使用するのは、それが本当に必要な場合か、テーブルに数個のエントリしかない場合だけにしてください。初期値は項目のデータ型によって異なります。
データ型 |
初期値 |
ACCP, CHAR, CUKY, LANG, |
” ” SPACE |
CURR, DEC, FLTP, INT1, |
0 |
CLNT |
000 |
TIMS |
000000 |
DATS |
00000000 |
NUMC |
00000... 項目長が <=32 の場合( 項目長が >32 の場合は初期値なし ) |
LRAW, LCHR, RAW, VARC |
初期値なし |
ABAP
ディクショナリ内で初期値フラグが設定されていなくても、データベース上に項目を NOT NULL として登録することができます。項目がデータベース上で NOT NULL として定義されているか照会するには、該当するテーブルの更新画面で、 ユーティリティ → データベースオブジェクト → 照会 を選択します。テーブルの登録時には、そのテーブルのすべての項目が
NOT NULL と定義され、デフォルト値が入ります。テーブルの変換時も同様です。項目が NOT NULL として登録されるのは、新しい項目を挿入または追加するときだけです。ただしキー項目は例外であり、初期値フラグが自動的に設定されます。
データ型
LCHR 、 LRAW 、 RAW 、および NUMC で、項目長が 32 より大きい項目は 初期値として定義できません。