Hitachi

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


17.4.3 FIND文

〈この項の構成〉

(1) 機能

レコードを検索して,レコード実現値に位置指示子を位置づけます。

位置づけには,次の3つの検索があります。

レコード型内の検索と親子集合型内の検索は,順序,開始位置,および検索方向を決定してレコードを検索します。詳細については,「17.3.3 検索の順序,開始位置および方向」を参照してください。

(2) 形式

(3) オペランドの説明

FOR UPDATE

位置づけたレコードを更新(ERASE,MODIFY)するかどうかを指定します。

位置づけたレコードを更新する場合は,FOR UPDATEを指定してください。

位置づけたレコードを更新しない場合は,FOR UPDATEを省略してください。

●{FIRST|NEXT|LAST|PRIOR}

レコード走査の開始位置となるレコードとレコード走査の方向を示す指示コードを指定します。

FIRST:先頭から順方向に検索します。

NEXT:位置づけされているレコードから順方向に検索します。

LAST:最後から逆順方向に検索します。

PRIOR:位置づけされているレコードから逆順方向に検索します。

LASTおよびPRIORは親子集合型内の検索のときだけ指定できます。

検索の開始位置,方向については,「17.3.3 検索の順序,開始位置および方向」を参照してください。

●レコード名

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

位置づけるレコード名を指定します。

注意事項
  • レコード名に英小文字を使用している場合は,レコード名を引用符(")で囲んでください。引用符で囲まないと,英小文字は英大文字と見なされます。

  • レコード名に空白またはハイフン(-)を使用している場合は,レコード名を引用符(")で囲んでください。

WITHIN 親子集合型名

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

親子集合型内の検索を行う場合に指定します。

検索する親子集合の親子集合型名を指定します。

注意事項
  • 親子集合型名に英小文字を使用している場合は,親子集合型名を引用符(")で囲んでください。引用符で囲まないと,英小文字は英大文字と見なされます。

  • 親子集合型名に空白またはハイフン(-)を使用している場合は,親子集合型名を引用符(")で囲んでください。

●WHERE (探索条件)

位置づけるレコードの条件を指定します。探索条件が真になるレコードが位置づけ対象になります。探索条件は,レコード型内の位置づけの際に指定できます。

探索条件については,「17.3.1 探索条件の指定」を参照してください。

CURRENT OWNER OF 親子集合型名

位置指示子指定の検索の場合に指定します。

検索対象の親子集合型名を指定します。

指定された親子集合型の位置指示子の親レコードを検索対象とし,関連する位置指示子を更新します。

(4) 共通規則

(5) 使用例

例1

レコード型内の検索で,レコード実現値を更新するための位置づけを行います。

FIND FOR UPDATE FIRST "RECA"
    WHERE("KEYDATA"=:WKEYDATA)
例2

レコード型内の検索で,レコードを検索するための位置づけを行います。

FIND FIRST "RECA" WHERE("KEYDATA"='0001')
例3

親子集合型内の検索で,レコードを検索するための位置づけを行います。

FIND FIRST "RECB" WITHIN SET1
例4

位置指示子指定の検索例です。

ここでは,RECA(ルートレコード),RECB(子レコード),SETAB(RECAとRECBの親子集合型名)とします。

  1. レコード型内の検索で,RECB(子レコード)の位置づけを行います。

    FIND FIRST "RECB"

    この検索では,RECBのレコード位置指示子,SETABの親子集合位置指示子の子および親が位置づけられます。

  2. 位置指示子指定の検索で,RECA(親レコード)の位置づけを行います。

    FIND CURRENT OWNER OF "SETAB"