Hitachi

ノンストップデータベース HiRDB Version 10 構造型データベース機能


11.5.1 SDBデータベース定義【4V FMB】

*ENTRY DICTIONARY文または*ALTER DICTIONARY文に指定するSDBデータベース定義について説明します。

注意事項

*ENTRY DICTIONARY文または*ALTER DICTIONARY文に指定したSDBデータベース定義は保存しておいてください。*ALTER DICTIONARY文でSDBデータベース定義を変更する際,変更個所だけを指定するのではなく,変更後のSDBデータベース定義をすべて指定する必要があります。このとき,保存しておいたSDBデータベース定義が必要になります。

〈この項の構成〉

(1) 機能

SDBデータベースの論理構造を定義します。

(2) 形式

項番

形式

オペランドの追加可否※1

(a)

SCHEMA SDBデータベース名

×

(b)

DBTYPE 4V FMB

×

(c)

 RECORD レコード型名

※2

(d)

     {レベル番号|ITEM} 構成要素名

(e)

     〔{CHARACTER 長さ

        |XCHARACTER 長さ

        |PACKED 〔DECIMAL FIXED〕 整数部桁数〔,小数部桁数〕

        |INTEGER}

(f)

      TYPE データ種別1,データ種別2

      〕…

(g)

     〔FUNCTION

        〔REFER USE〕

        〔ADD {USE|NOUSE}〕

        〔UPDATE {USE|NOUSE}〕

        〔ERASE {USE|NOUSE}〕

        〔ALLERASE NOUSE〕

      〕

(h)

     〔RECORDID レコード識別コード〕

 …

(i)

 〔SET 親子集合型名

(j)

    OWNER 親レコード型名

(k)

    ORDER {LAST|SORTED DUPLICATES PROHIBITED}

(l)

    MEMBER 子レコード型名

(m)

    INSERTION AUTOMATIC

(n)

    RETENTION FIXED

(o)

    〔KEY {ASCENDING|DESCENDING} 構成要素名〕

(p)

      〔SETOPTION

(q)

        〔OCCURRENCE NUMBER 一連番号の最大値

(r)

          〔WARNING {一連番号使用比率1

                  〔,一連番号使用比率2

                  〔,一連番号使用比率3〕〕|0}〕

(s)

          〔REUSE {YES|NO}〕

        〕

      〕

  〕…

(t)

 〔SDBOPTION

×

(u)

   〔FUNCTION

      〔REFER USE〕

      〔ADD {USE|NOUSE}〕

      〔UPDATE {USE|NOUSE}〕

      〔ERASE {USE|NOUSE}〕

      〔ALLERASE NOUSE〕

      〔DBLODUTL USE〕

      〔FORMAT NOUSE〕

    〕

(v)

   〔OCCURRENCE WARNING {一連番号使用比率1

                     〔,一連番号使用比率2

                     〔,一連番号使用比率3〕〕|0}〕

※3

  〕

(w)

END SCHEMA

×

(凡例)

○:*ALTER DICTIONARY文の実行時に追加できるオペランドです。

×:*ALTER DICTIONARY文の実行時に追加できないオペランドです。

注※1

*ALTER DICTIONARY文実行時のオペランド追加可否です。

注※2
  • 最下位の子レコード型の追加とその親子集合の追加ができます。

  • RECORD句とSET句は必ず両方指定してください。どちらか片方だけを指定することはできません。

注※3

ルートレコード型だけの定義に対して子レコード型を1個以上追加する場合は,追加指定できます。

参考

SDBOPTION句下のREADYMODE句の指定は無視されるため,バージョン09-66のマニュアルから,上記の形式にREADYMODE句は記載していません。READYMODE句を指定したままでもエラーにはなりません。また,READYMODE句の指定値によってシステムの動作が変わることはありません。

(3) 定義句の指定順序

SDBデータベース定義の定義句の指定順序には,次に示す規則があります。

(4) *ALTER DICTIONARY文によるSDBデータベースの定義変更

*ALTER DICTIONARY文によるSDBデータベースの定義変更は,最下位の子レコード型の追加とその親子集合の追加ができます。子レコード型を追加できる位置と追加できない位置を次の図に示します。

図11‒12 子レコード型を追加できる位置と追加できない位置

[図データ]

[図データ]

なお,*ALTER DICTIONARY文では,既存のレコード型の定義は変更できません。*ALTER DICTIONARY文によるSDBデータベースの定義変更の例を次の図に示します。

図11‒13 *ALTER DICTIONARY文によるSDBデータベースの定義変更の例(4V FMBのSDBデータベースの場合)

[図データ]

[図データ]

[図データ]

*ALTER DICTIONARY文で実行できるSDBデータベースの定義変更を次の表に示します。

表11‒10 *ALTER DICTIONARY文で実行できるSDBデータベースの定義変更

定義名

定義変更の内容

説明

SDBデータベース定義

レコード型の追加(RECORD句の追加)

次に示す条件をすべて満たす場合にレコード型を追加できます。

  • 追加するレコード型が子レコード型である。

  • 追加する子レコード型の親レコード型で管理している子レコード用の管理領域の予備領域がある(子レコード型を追加しても問題ないだけの予備領域がある)。

また,次に示す定義の追加または変更を行う必要があります。

  • 既存のレコード型を親レコード型,追加するレコード型を子レコード型とする親子集合を追加する。

  • SDBデータベース格納定義のSTORAGE RECORD句を追加し,対応する格納レコード名を指定する。

親子集合の追加(SET句の追加)

追加した子レコード型の親子集合を追加できます。

一連番号の使用状況の監視の追加(OCCURRENCE WARNING句の追加)

ルートレコード型だけの定義に対して,子レコード型を1個以上追加する場合に限り,追加指定できます。

SDBデータベース格納定義

格納レコードの追加(STORAGE RECORD句の追加)

SDBデータベース定義で子レコード型を追加した場合に,対応する格納レコード名を追加します。子レコード型を追加していない場合に,格納レコード名だけを追加することはできません。

なお,追加した子レコード型にデータ種別がK,Nの構成要素が存在する場合は,K,NまたはU,Kの構成要素の数まで二次インデクスを追加できます。二次インデクスの追加に伴い,二次インデクスを格納するRDエリアを追加できます。

格納親子集合の追加(SET句の追加)

子レコード型を追加する際に追加する親子集合に対応する格納親子集合を追加できます。子レコード型を追加しないで,格納親子集合だけを追加することはできません。

キー値の追加(KEYDEF句の追加)

キー値の追加はできません。

(5) オペランドの説明

SDBデータベース定義の各オペランドの指定内容を説明します。

(a) SCHEMA

SCHEMA SDBデータベース名

〜<識別子>((1〜30バイト))

SDBデータベースのSDBデータベース名を指定します。

すでに使用しているSDBデータベース名は指定できません。

(b) DBTYPE

定義するSDBデータベースのSDBデータベース種別を指定します。

DBTYPE 4V FMB

SDBデータベース種別が4V FMBのSDBデータベースを定義する場合は,DBTYPE句に4V FMBを指定します。

4V FMBのSDBデータベースとは,階層構造を持つデータベースで,メインフレームのTMS-4V/SPがサポートしているFMBのデータベースに相当します。詳細については,「2.3.3 SDBデータベース」を参照してください。

注意事項

SDBデータベース種別が4V(4V FMBまたは4V AFM)のSDBデータベースとSD FMBのSDBデータベースをシステム内で混在して定義することはできません。混在させた場合,動作を保証しません。

(c) RECORD

RECORD レコード型名

〜<識別子>((1〜30バイト))

レコード型名を指定します。

《規則》
  • レコード型名は,同一スキーマ内で一意になるように指定してください。

  • 1つのSDBデータベース定義内で指定できるRECORD句は,1〜128個です。

《定義例》

階層構造がルートレコード(RECORD A1),子レコード(RECORD A2),孫レコード(RECORD A3),ひ孫レコード(RECORD A4)の場合を例に,データベースキーの関係を次に示します。

[図データ]

(d) レベル番号,ITEM

{レベル番号│ITEM} 構成要素名

構成要素に関する情報を指定します。1つのRECORD句内での構成要素の階層レベルを指定します。

  • すべての構成要素が基本項目の場合,ITEMを指定できます。

  • 1つのレコード型内で,レベル番号とITEMは同時に指定できません。

SDBデータベースにアクセスするためのAPIで「DBKEY」の名称を利用するため,構成要素名として「DBKEY」を指定する必要があります。指定方法の詳細については,「表11-14 ルートレコード型の構成要素の指定」〜「表11-16 子レコード(3階層以上)の構成要素の指定」を参照してください。

レベル番号

〜<符号なし整数>((2〜49))

1つのRECORD句内での構成要素の階層レベルを指定します。

階層が深くなるに従ってレベル番号を増やすように指定してください。レベル番号は連続した値である必要はありません。

階層が浅くなるときは,すでに指定したレベル番号にしてください。

ITEM

すべての構成要素が基本項目の場合に指定できます。

構成要素名

〜<識別子>((1〜30バイト))

構成要素名を指定します。

《規則》

  • 構成要素名は,RECORD句内で一意にしてください。

  • RECORD句内に指定できる構成要素の合計長は最大30,000バイトです。また,RECORD句内に指定できる構成要素の個数は最大30,000個です。

  • 各レコード型の最初の基本項目の構成要素のデータ種別1には,Kを指定してください。

  • 上位レコードのキーの構成要素,および一連番号の構成要素は,下位レコードの構成要素として,データ型とデータ種別を同じように指定してください。

  • ユーザデータ(データ種別1,2(TYPE U,D))の構成要素は,幾つかの構成要素をまとめて,ユーザ任意の集団項目内に指定できます。

    ユーザキー(データ種別1,2(TYPE U,K)),ユーザファイル通番(データ種別1,2(TYPE U,F))の構成要素は,集団項目内に指定できません。

(e) データ型

{CHARACTER 長さ

│XCHARACTER 長さ

│PACKED 〔DECIMAL FIXED〕 整数部桁数〔,小数部桁数〕

│INTEGER}

構成要素のデータ型を指定します。構成要素に指定できるデータ型を次の表に示します。

表11‒11 構成要素に指定できるデータ型

データ種別

データ型

データ形式

文字列

CHARACTER

固定長文字列

16進形式の文字列

XCHARACTER

16進固定長文字列

数値

PACKED 〔DECIMAL FIXED〕

符号付きパック形式10進データ

INTEGER

整数

CHARACTER 長さ

〜<符号なし整数>((1〜30,000))

文字列データの長さを指定します。

XCHARACTER 長さ

〜<符号なし整数>((1〜30,000))

16進形式の文字列データの長さを指定します。

PACKED 〔DECIMAL FIXED〕 整数部桁数〔,小数部桁数〕

整数部桁数

  〜<符号なし整数>((0〜38))

小数部桁数

  〜<符号なし整数>((0〜38))

符号付きパック形式の10進データの整数部桁数,および小数部桁数を指定します。

整数部桁数と小数部桁数の和は,1〜38になるようにしてください。

INTEGER

値の範囲が-2,147,483,648〜2,147,483,647の整数を指定します。長さは指定できません。

《規則》
  • 一連番号の構成要素には,必ずINTEGERを指定してください。

  • 基本項目の場合,データ型およびTYPE句を指定してください。

  • 集団項目の場合,データ型およびTYPE句を省略してください。

  • KEYDEF句に指定する構成要素については,データの長さを1〜30バイトで指定してください。KEYDEF句については,「11.5.2(3)(v) KEYDEF」を参照してください。

(f) TYPE

TYPE データ種別1,データ種別2

構成要素のデータ種別を指定します。

データ種別1

〜<英字>((1バイト))

データベースキーかユーザデータかを区別するための種別を指定します。

データ種別2

〜<英字>((1バイト))

データ種別1をさらに分類するための詳細な種別を指定します。

TYPE句で指定するデータ種別の指定値と意味を次の表に示します。

表11‒12 データ種別の指定値と意味

データ種別

指定値

意味

データ種別1

K

データベースキーで,次に該当する場合の構成要素

  • データベースキー

  • 上位レコードの一連番号

  • 自レコードの一連番号(一連番号の最大値(OCCURRENCE NUMBER句の指定)が1以上の場合)

N

自レコードの一連番号(一連番号の最大値(OCCURRENCE NUMBER句の指定)が0の場合)

U

ユーザデータ

データ種別2

A

RDエリア分割キーとする構成要素(SDBデータベースを横分割する際,レコードの格納RDエリアを決める構成要素)

N

自レコードの一連番号の構成要素

  • データ種別1がKの場合,一連番号属性あり

  • データ種別1がNの場合,一連番号属性なし

P

上位レコードの一連番号の構成要素

L

そのほかのデータベースキーの構成要素

F

ユーザファイル通番の構成要素

K

ユーザキーの構成要素

D

そのほかのユーザデータの構成要素

《規則》

指定順序と記述の規則

  • K,N,Uの順に,必要な種別を指定してください。

  • ユーザデータのあとにデータベースキーを指定することはできません。

そのほかの規則

  • データ種別1がK,かつデータ種別2がAの構成要素は,ルートレコード型と子レコード型で同一名称にしてください。

  • データ種別1がK,かつデータ種別2がAの構成要素は,データの長さを1〜30バイトの範囲で指定してください。

  • RECORD句内では,データ種別2がAの構成要素は,それぞれ最大1つ指定できます。

  • データ種別1がK,かつデータ種別2がNの場合,一連番号属性があります。OCCURRENCE NUMBER句には1以上を指定するか,または指定を省略してください。

  • データ種別1がN,かつデータ種別2がNの場合,一連番号属性がありません。OCCURRENCE NUMBER句には0を指定してください。

  • 上位レコードで一連番号属性なしの構成要素(データ種別1,2(N,N))または一連番号属性ありの構成要素(データ種別1,2(K,N))は,下位レコードの構成要素で,データ種別1,2(K,P)を指定してください。

  • データ種別2がFの構成要素はレコード型内の最後の構成要素に1つだけ指定できます。

  • データ種別2がKの構成要素は1レコード型に最大1つのユーザキーを指定できます。

  • 構成要素のデータ種別1とデータ種別2で,指定できる組み合わせを次の表に示します。

    表11‒13 構成要素のデータ種別1とデータ種別2に指定できる組み合わせ

    データ種別1の指定

    データ種別2に指定できる値

    Kの場合

    L

    A

    N※1

    P

    Nの場合

    N※2

    Uの場合

    D

    F※3

    K

    注※1

    OCCURRENCE NUMBER句は省略するか,または1以上を指定してください。

    注※2

    OCCURRENCE NUMBER句には0を指定してください。

    注※3

    レコード型内で最後に1つだけ指定できます。

  • ルートレコード型と子レコード型(2階層),および子レコード型(3階層以上)の構成要素の指定を次の表に示します。

    指定順序や指定する個数,データ種別の組み合わせに誤りがある場合はエラーとなります。なお,1つの項番の中で基本項目と集団項目を複数指定できる場合の,指定順序は任意です。

    表11‒14 ルートレコード型の構成要素の指定

    指定順

    項目

    説明

    データ種別

    1

    2

    1

    「DBKEY」の構成要素名

    • 構成要素名を「DBKEY」とします。

    • 集団項目として指定します。

    2

    データベースキー1〜7

    構成要素名

    • 各データベースキーを,集団項目「DBKEY」下の基本項目として,同じレベル番号で指定します。

    • 集団項目とはしないでください。

    K

    L

    個数

    1〜7

    A

    3

    ユーザデータの構成要素名

    ユーザデータの構成要素名を指定します。

    U

    D

    F

    (凡例)

    −:該当しません。

    表11‒15 子レコード型(2階層)の構成要素の指定

    指定順

    項目

    説明

    データ種別

    1

    2

    1

    データベースキー1〜7

    構成要素名

    • ルートレコード型で指定したデータベースキーを,同じレベル番号の基本項目として指定します。

    • 集団項目とはしないでください。

    K

    L

    個数

    1〜7

    A

    2

    一連番号

    OCCURRENCE NUMBER句の指定値が1以上の場合

    • 構成要素名を「DBKEY」とします。

    • 基本項目として指定します。

    K

    N

    OCCURRENCE NUMBER句の指定値が0の場合

    N

    N

    3

    ユーザデータの構成要素名

    ユーザデータの構成要素名を指定します。

    U

    D

    K

    F

    (凡例)

    −:該当しません。

    表11‒16 子レコード(3階層以上)の構成要素の指定

    指定順

    項目

    説明

    データ種別

    1

    2

    1

    データベースキー1〜7

    構成要素名

    • 上位の子レコード型で指定したデータベースキーを,同じレベル番号の基本項目として指定します。

    • 集団項目とはしないでください。

    K

    L

    個数

    1〜7

    A

    2

    上位の一連番号

    構成要素名

    • 構成要素名は「DBKEY」以外とします。

    • 上位レコード型で指定した一連番号を,基本項目として指定します。

    K

    P

    個数

    上位の子レコード型で指定した一連番号の構成要素数と同じになります(階層−2)。

    3

    一連番号

    OCCURRENCE NUMBER句の指定値が1以上の場合

    • 構成要素名を「DBKEY」とします。

    • 基本項目として指定します。

    K

    N

    OCCURRENCE NUMBER句の指定値が0の場合

    N

    N

    4

    ユーザデータの構成要素名

    ユーザデータの構成要素名を指定します。

    U

    D

    K

    F

    (凡例)

    −:該当しません。

(g) FUNCTION

FUNCTION

〔REFER USE〕

〔ADD {USE|NOUSE}〕

〔UPDATE {USE|NOUSE}〕

〔ERASE {USE|NOUSE}〕

〔ALLERASE NOUSE〕

SDBデータベースへのアクセス属性を指定します。

SDBデータベースへのアクセス属性は,SDBOPTION句下のFUNCTION句でも指定できます。RECORD句内で指定する場合は,各RECORD句にアクセス属性が指定できます。指定を省略した場合は,SDBOPTION句下のFUNCTION句の指定値,または省略値が仮定されます。

REFER USE

レコードの検索を許可します。

常にREFER USEが仮定されます(REFER句を省略しても,REFER USEが仮定されます)。

ADD

レコードの追加を許可するかどうかを指定します。

USE:レコードの追加を許可します。

NOUSE:レコードの追加を許可しません。

RECORD句下のADD句を省略した場合,SDBOPTION句下のADD句の指定値が仮定されます。RECORD句下のADD句とSDBOPTION句下のADD句の両方を省略した場合,USEが仮定されます。

UPDATE

レコードの更新を許可するかどうかを指定します。

USE:レコードの更新を許可します。

NOUSE:レコードの更新を許可しません。

RECORD句下のUPDATE句を省略した場合,SDBOPTION句下のUPDATE句の指定値が仮定されます。RECORD句下のUPDATE句とSDBOPTION句下のUPDATE句の両方を省略した場合,USEが仮定されます。

ERASE

レコードの削除を許可するかどうかを指定します。

USE:レコードの削除を許可します。

NOUSE:レコードの削除を許可しません。

RECORD句下のERASE句を省略した場合,SDBOPTION句下のERASE句の指定値が仮定されます。RECORD句下のUPDATE句とSDBOPTION句下のERASE句の両方を省略した場合,NOUSEが仮定されます。

ALLERASE NOUSE

レコードの一括削除を許可しません。

常にALLERASE NOUSEが仮定されます(ALLERASE句を省略しても,ALLERASE NOUSEが仮定されます)。

(h) RECORDID

RECORDID レコード識別コード

〜X'<16進数字>'((1バイト))

レコード型を識別するコードとして,レコード識別コードを指定します。

《規則》
  • レコード識別コードを1バイトで指定します。

  • X'00'以外は重複できません。

(i) SET

SET 親子集合型名

〜<識別子>((1〜30バイト))

親子集合型名を指定します。

《規則》
  • 親子集合型名は,SDBデータベース定義内で一意にしてください。

  • ルートレコード型の数は1つにしてください。

  • 親レコードから子レコードへの親子集合型をたどった場合に,元のレコードにたどり着くような親子集合型は定義できません。

  • 1つのSDBデータベース定義内に指定できる親子集合型数は,0〜127個です。指定できる親子集合の階層は,1〜15です。

(j) OWNER

OWNER 親レコード型名

〜<識別子>((1〜30バイト))

親子集合の親レコード型名を指定します。

《規則》

親レコード型名には,RECORD句で定義したレコード型名を指定してください。

(k) ORDER

ORDER {LAST│SORTED DUPLICATES PROHIBITED}

APIによるレコードの格納時(STORE),HiRDB/SDデータベース作成ユティリティ(pdsdblod),またはHiRDB/SDデータベースアクセスユティリティ(pdsdbexe)で,子レコード実現値を親子集合内の任意の実現値に格納する際の位置(親子集合内の子レコードへの挿入順序)を指定します。

LAST

子レコード実現値群の最後に格納します。

SORTED DUPLICATES PROHIBITED

子レコード型で指定したキー項目(KEY句に指定した構成要素)の値に従って,昇順または降順に格納します。

同じ親レコードに対して,同じ値のキー項目を持つ子レコードが格納済みの場合,格納できません。

データ種別1,2(TYPE U,K)を指定している場合は,SORTED DUPLICATES PROHIBITEDを指定してください。それ以外の場合は,LASTを指定してください。

《規則》

1つのSET句の指定には,必ずORDER句を指定してください。

(l) MEMBER

MEMBER 子レコード型名

〜<識別子>((1〜30バイト))

親子集合内の子レコード型名を指定します。

《規則》
  • 子レコード型名には,RECORD句で定義したレコード型名を指定してください。ただし,親子集合の親レコード型名と重複する子レコード型名は指定できません。

  • 1つのSET句には,必ずMEMBER句を指定してください。

(m) INSERTION

INSERTION AUTOMATIC

子レコードを親子集合に格納するときの挿入方法を指定します。

AUTOMATIC

子レコードのレコード実現値がデータベースに格納されると,自動的に親レコードが属する親子集合型の親子集合実現値に格納されます。

(n) RETENTION

RETENTION FIXED

子レコードを親子集合から切り離すまでの属性を指定します。

FIXED

レコードが,ある親子集合の子レコードになったレコードは,データベースから削除されるまで,その親子集合の子レコードでなければなりません。

(o) KEY

KEY {ASCENDING│DESCENDING} 構成要素名

ORDER句でSORTED DUPLICATES PROHIBITEDを指定した親子集合の子レコードを構成要素の値に従って,昇順に格納するか,または降順に格納するかを指定します。指定した構成要素をキー項目とします。

ASCENDING

子レコードを昇順に格納します。

DESCENDING

子レコードを降順に格納します。

構成要素名

〜<識別子>((1〜30バイト))

格納時のキーになる構成要素名を指定します。

《規則》
  • キーの構成要素長は254バイト以内としてください。

  • 構成要素名に,集団項目の構成要素名は指定できません。

  • 指定できる構成要素は,データ種別1がユーザデータ(U),データ種別2がユーザキー(K)の構成要素だけです。

  • 構成要素名には,RECORD句で定義した構成要素名を指定してください。

  • 1つのKEY句に構成要素名を2つ以上指定できません。

  • ORDER句でLASTを指定した場合,KEY句は指定できません。

  • ORDER句でSORTED DUPLICATES PROHIBITEDを指定した場合,必ずKEY句を指定してください。

(p) SETOPTION

SETOPTION

親子集合に関するオプションを指定します。

(q) OCCURRENCE NUMBER

OCCURRENCE NUMBER 一連番号の最大値

〜<符号なし整数>((0〜2,147,483,647))≪30,000≫

一連番号の最大値を指定します。

0を指定した場合,非オカレンスであることを示します。

《規則》
  • 構成要素のデータ種別1,2の指定がN,Nの場合,OCCURRENCE NUMBER句に0以外を指定,または省略することはできません。

  • 構成要素のデータ種別1,2の指定がK,Nの場合,0は指定できません。

  • WARNING句またはREUSE句を指定する場合は,この句も指定する必要があります。

(r) WARNING

WARNING {一連番号使用比率1〔,一連番号使用比率2〔,一連番号使用比率3〕〕|0}

一連番号の使用状況を監視する場合に,一連番号の使用比率を%単位で指定します。

一連番号使用比率1,一連番号使用比率2,一連番号使用比率3

〜<符号なし整数>((50〜99))

割り当て済み一連番号の割合が一連番号使用比率1〜3で指定した値に達した場合に,メッセージを1回ずつ出力します。0を指定した場合は,割り当て済みの一連番号の監視をしません。

注※ 監視値=↑一連番号の最大値×一連番号使用比率n↑

この句とSDBOPTION句下のOCCURRENCE WARNING句の両方を指定した場合,この句での指定が有効となります。この場合,一連番号使用比率の指定値の個数が異なっていても,双方で補ってメッセージを出力することはありません。

OCCURRENCE NUMBER句の指定が0で,この句を省略した場合,割り当て済みの一連番号の監視をしません。

OCCURRENCE NUMBER句の指定が0以外で,この句を省略した場合,SDBOPTION句下のOCCURRENCE WARNING句の指定が有効となります。

SDBOPTION句下のOCCURRENCE WARNING句も省略した場合,割り当て済みの一連番号の監視をしません。

一度に複数の一連番号使用比率に達した場合は,対応するメッセージがすべて出力されます。例えば,WARNING句の指定を60,70,80とした場合に,1回目のレコードの格納で75%に達した場合は,指定値60と70に対応するメッセージが出力されます。

一連番号の最大値が小さいと,重複指定でなくても内部的に重複指定と同じような扱いになる場合があります。例えば,OCCURRENCE NUMBER句が10,WARNING句が97,98,99と定義した場合,どの指定値も割り当て済み一連番号が10になった時点で,97(%)と98(%)と99(%)に対応するメッセージが出力されます。

一連番号の監視については,「5.25 一連番号の監視」を参照してください。

《規則》

  • 一連番号使用比率を複数指定する場合,指定値が昇順になるように指定してください。

  • OCCURRENCE NUMBER句との組み合わせ可否を次の表に示します。

    表11‒17 SETOPTION句下のOCCURRENCE NUMBER句とWARNING句の組み合わせ可否

    SETOPTION句下のOCCURRENCE NUMBER句の指定

    SETOPTION句下のWARNING句の指定

    0以外

    0

    0以外

    0

    ×

    (凡例)

    ○:WARNING句が指定できます。

    ×:WARNING句は指定できません。

    表11‒18 SETOPTION句下のOCCURRENCE NUMBER句とSDBOPTION句下のOCCURRENCE WARNING句の組み合わせ可否

    SETOPTION句下のOCCURRENCE NUMBER句の指定

    SDBOPTION句下のOCCURRENCE WARNING句の指定

    0以外

    0

    すべて0以外

    一部0

    すべて0

    ×

    (凡例)

    ○:OCCURRENCE WARNING句が指定できます。

    ×:OCCURRENCE WARNING句は指定できません。

  • FUNCTION句のADD指定との組み合わせとレコードの追加可否を次の表に示します。

    表11‒19 FUNCTION句のADD指定との組み合わせとレコードの追加可否

    SDBデータベース種別

    SDBOPTION句下のFUNCTION句のADD指定

    省略

    U

    N

    子レコードのFUNCTION句のADD指定

    省略

    U

    N

    省略

    U

    N

    省略

    U

    N

    4V FMB

    ×

    ×

    ×

    ×

    (凡例)

    U:USE指定

    N:NOUSE指定

    ○:レコードの指定ができます。

    ×:レコードの指定ができません。

  • 子レコードへの追加可否との組み合わせを次の表に示します。

    表11‒20 子レコードへの追加可否とWARNING句の組み合わせ可否

    子レコードへの追加

    SETOPTION句下のWARNING句の指定

    0以外

    0

    できる

    できない

    ×

    (凡例)

    ○:WARNING句が指定できます。

    ×:WARNING句は指定できません。

    表11‒21 子レコードへの追加可否とSDBOPTION句下のOCCURRENCE WARNING句の組み合わせ可否

    子レコードへの追加

    SDBOPTION句下のOCCURRENCE WARNING句の指定

    0以外

    0

    すべての子レコードに対してできる

    一部の子レコードに対してできる

    すべての子レコードに対してできない

    ×

    (凡例)

    ○:OCCURRENCE WARNING句が指定できます。

    ×:OCCURRENCE WARNING句は指定できません。

(s) REUSE

REUSE {YES│NO

削除された一連番号を再利用するかどうかを指定します。

レコードを一括削除した場合,または全件削除した場合は,REUSE句の指定に関係なく,最初から一連番号を振り直します。

YES

一連番号を再利用します。

一連番号を再利用するには,ERASE句にUSEを指定している必要があります。

なお,OCCURRENCE NUMBER句に0を指定してもエラーにはなりません。

ORDER句でSORTED DUPLICATES PROHIBITEDを指定した場合は指定できません。

NO

削除された一連番号を再利用しません。

一連番号再利用の例を次の図に示します。

図11‒14 一連番号再利用の例

[図データ]

(t) SDBOPTION

SDBOPTION

SDBデータベースのオプション機能を定義します。

(u) FUNCTION

FUNCTION

〔REFER USE〕

〔ADD {USE|NOUSE}〕

〔UPDATE {USE|NOUSE}〕

〔ERASE {USE|NOUSE}〕

〔ALLERASE NOUSE〕

〔DBLODUTL USE〕

〔FORMAT NOUSE〕

SDBデータベースへのアクセス属性を指定します。

REFER句,ADD句,UPDATE句,ERASE句,ALLERASE句の詳細については,「11.5.1(5)(g) FUNCTION」を参照してください。

DBLODUTL USE

HiRDB/SDデータベース作成ユティリティ(pdsdblod)のデータロード機能の実行を許可します。

常にDBLODUTL USEが仮定されます(DBLODUTL句を省略しても,DBLODUTL USEが仮定されます)。

FORMAT NOUSE

HiRDB/SDデータベース作成ユティリティ(pdsdblod)のデータベースへのフォーマットライト機能が使用できません。

常にFORMAT NOUSEが仮定されます(FORMAT句を省略しても,FORMAT NOUSEが仮定されます)。

(v) OCCURRENCE WARNING

OCCURRENCE WARNING {一連番号使用比率1〔,一連番号使用比率2〔,一連番号使用比率3〕〕

0

一連番号の使用状況を監視する場合に,一連番号の使用比率を%単位で指定します。

一連番号使用比率1,一連番号使用比率2,一連番号使用比率3

〜<符号なし整数>((50〜99))

割り当て済み一連番号の割合が,一連番号使用比率1〜3で指定した値に達した場合に,メッセージを1回ずつ出力します。0を指定した場合,またはこの句を省略した場合は,割り当て済み一連番号の監視はしません。

この指定はすべての子レコード型に対して有効となりますが,SETOPTION句下でWARNING句を指定した場合は,SETOPTION句下のWARNING句の指定が有効となります。この場合,一連番号使用比率の指定値の個数が異なっても,双方で補ってメッセージを出力することはありません。

一連番号の監視については,「5.25 一連番号の監視」を参照してください。

《規則》

  • ルートレコード型だけを定義している場合は,このオペランドを指定できません。

  • ルートレコード型だけの定義に対して,子レコード型を1個以上追加する場合は追加指定ができます。

上記以外の規則については,SETOPTION句下の「(r) WARNING」の規則を参照してください。

(w) END SCHEMA

END SCHEMA

SDBデータベース定義の終了を示します。