11.4.3 *ALTER DICTIONARY文(SDBディクショナリ情報の変更)【4V FMB,4V AFM】
SDBデータベース定義およびSDBデータベース格納定義からSDBディクショナリ情報を作成し,ディクショナリ表に登録されているSDBディクショナリ情報を変更します。
SD FMBのSDBデータベースのSDBディクショナリ情報を*ALTER DICTIONARY文で変更することはできません。
(1) 形式
*ALTER DICTIONARY SDBデータベース定義またはSDBデータベース格納定義
(2) 説明
- *ALTER DICTIONARY:
-
SDBディクショナリ情報を変更するときに指定します。*ALTER DICTIONARYのあとにSDBデータベース定義,SDBデータベース格納定義を指定します。
- SDBデータベース定義:
-
変更後のSDBデータベース定義を指定します。
SDBデータベース定義を変更する場合は,変更個所だけを指定するのではなく,変更後のSDBデータベース定義をすべて指定してください。SDBデータベース定義の指定形式,および変更できるオペランドについては,次の個所を参照してください。
-
4V FMBのSDBデータベースの定義を変更する場合
-
4V AFMのSDBデータベースの定義を変更する場合
-
- SDBデータベース格納定義:
-
変更後のSDBデータベース格納定義を指定します。
SDBデータベース格納定義を変更する場合は,変更個所だけを指定するのではなく,変更後のSDBデータベース格納定義をすべて指定してください。SDBデータベース格納定義の指定形式,および変更できるオペランドについては,次の個所を参照してください。
-
4V FMBのSDBデータベースの定義を変更する場合
-
4V AFMのSDBデータベースの定義を変更する場合
-
(3) 留意事項
-
*ALTER DICTIONARY文および*ALTER DIRECTORY文によるSDBデータベースの定義変更では,最下位のレコード型とその親子集合の追加,および横分割格納したRDエリアの変更(追加,削除,分割,統合)ができます。SDBデータベース定義およびSDBデータベース格納定義で変更できるオペランドについては,次の個所を参照してください。
-
4V FMBのSDBデータベースの定義を変更する場合
-
4V AFMのSDBデータベースの定義を変更する場合合
-
-
*ALTER DICTIONARY文および*ALTER DIRECTORY文によるRDエリアの削除,分割,または統合を行う場合,pdsdbdefコマンドの実行時に-iオプションを指定する必要があります。-iオプションを指定しないと,pdsdbdefコマンドがエラーとなります。
-
変更後のSDBディクショナリ情報のサイズが2,048,000,000バイトを超える場合,*ALTER DICTIONARY文の実行がエラーになります。
-
追加する子レコード型の親レコード型で,子レコード用の管理領域の予備領域が不足している場合,子レコード型を追加できないため,*CHECK DICTIONARY文または*ALTER DIRECTORY文によるデータベース定義のチェック時にエラーとなります。
-
*ALTER DICTIONARY文によるRDエリアの分割または統合を行った場合,*CHECK DICTIONARY文または*ALTER DIRECTORY文の延長で,変更対象のRDエリアに格納されているデータが削除されることがあります。詳細については,「表11-23 RDエリアの定義変更時のデータの削除有無(格納条件指定の横分割の場合)」または「表11-24 RDエリアの定義変更時のデータの削除有無(境界値指定の横分割の場合)」を参照してください。
また,このデータ削除を伴う操作に限り,例外的にpdsdbdefコマンドの途中に同期点処理が行われることがあります。そのため,pdsdbdefコマンドの実行中にエラーが発生した場合,SDB定義文ファイル中に指定したSDB定義文は,完了した処理と無効となった処理に分かれます。したがって,pdsdbdefコマンドを再実行する場合は,SDB定義文の変更が必要となります。詳細については,「11.4.10 エラー発生時の再実行について」を参照してください。