データベース定義の固有の構文

本付録では、データベースを定義する際に使用される元のシステムと異なるOpenFrame HiDBの固有の構文について説明します。

データベースを定義するための他の構文は、元のデータベースと同じです。

1. DBD SEGM文

DBDに定義されるSEGMSEGM文は、データベースにセグメント・タイプを定義するために使用されます。詳細については、データベースの管理DBDを参照してください。

1.1. EXTPROC

セグメントのデータを並び替えるとき、データベースの関数またはユーザー定義の外部プロシージャを使用する場合に指定します。

  • 構文

    EXTPROC='<EP>関数形式、対象フィールド、開始位置、長さ</EP>'
    項目 説明

    <EP>、</EP>

    外部プロシージャの始まりと終わりを指定します。

    関数形式

    適用する関数をCスタイルの文字列で指定します。プレースホルダーは%sです。

    対象フィールド

    プレースホルダーの対象フィールドを指定します。

    開始位置

    対象フィールドの開始位置を指定します。

    長さ

    対象フィールドの長さを指定します。

  • EXTPROC='<EP>TO_CHAR(%s),SEG1KEY,0,6</EP>'

2. PSB SENSEG文

2.1. GNALLPARENT

親セグメントを持つセグメントに対してGET NEXTを処理する際、パフォーマンス向上のため、すべての親セグメントに対応する子セグメントの行を一括で取得するSELECTクエリが実行されます。ルート・セグメントに対してはこの指定を行っても動作に変化はありません。条件なしで子セグメントを探索するような処理において、パフォーマンス向上が期待できます。

  • 構文

    GNALLPARENT=(GN,GP,UNQSSA)
    項目 説明

    GN

    セグメントへの検索条件を指定していないGET NEXTコマンドに適用します。

    GP

    セグメントへの検索条件を指定していないGET NEXT IN PARENTコマンドに適用します。

    UNQSSA

    unqualified検索条件を指定した場合にも、GN、GPを適用します。ただし、ルート・セグメントから指定のセグメントに至るパスで、ルート・セグメントを除くすべてのセグメントにUNQSSAとGNまたはGPが指定されている必要があります。

  • GNALLPARENT=(GN,GP)

2.2. PAGESIZE

GET NEXTを処理する際に、一度に取得する行数を指定します。GET NEXTで一部の行のみを取得する場合にはパフォーマンスの向上が期待できますが、すべての行を対象とする場合には逆にパフォーマンスが低下する可能性があります。

  • 構文

    PAGESIZE=n
    項目 説明

    n

    一度に取得する行数を指定します。

  • PAGESIZE=100