Hitachi

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


14.5.4 MODIFY(レコードの更新)

〈この項の構成〉

(1) 機能

1つのレコード実現値を更新します。

(2) 指定形式

指定形式については,「17.4.4 MODIFY文」の「(2) 形式」の「DMLコマンドで記述するMODIFY文」を参照してください。

注意事項
  • 最後にセミコロン( ; )の指定が必要です。

  • オペランドの指定順序は変更できません。

(3) オペランドの説明

オペランドの説明については,「17.4.4 MODIFY文」の「(3) オペランドの説明」を参照してください。

(4) 使用例

MODIFYコマンドを実行してレコード実現値を更新する手順を次に示します。

手順

  1. MODIFYコマンドを実行する

     MODIFY "FMB1000" SET "USERDA0"=100.45;
  2. 更新対象のレコードが正しいかを確認する

     MODIFY DATA
         1 "USERDA0"
           <BEFORE> 999.45
           <AFTER>  100.45
     AGREE TO MODIFY ? [ENTER YES OR NO]
     YES   ←上記の情報を確認後,YESを指定します。

    MODIFYコマンドを実行してよいかどうかの確認メッセージが表示されます。

    構成要素名,および更新前後のレコード実現値を確認してから,YESを指定してください。

    参考

    構成要素名などに誤りがある場合は,NOを指定してMODIFYコマンドの実行を中止してください。

  3. MODIFYコマンドの実行結果を確認する

     MODIFY INFORMATION
       ROWID                           : X'070000001900000000000100'
     KFPB64050-I MODIFY command processing completed

    MODIFYコマンドの実行結果が表示されます。

(5) MODIFYコマンドの実行時に表示される情報

MODIFYコマンドの実行時に表示される情報について説明します。

(a) MODIFYコマンドの実行確認メッセージ

MODIFYコマンドを実行した際,次に示す確認メッセージが表示されます。

(例)

 MODIFY DATA
     1 "USERDA0"                       ...1
       <BEFORE> 999.45                 ...2
       <AFTER>  100.45                 ...3
 AGREE TO MODIFY ? [ENTER YES OR NO]   ...4
[説明]
  1. 構成要素の通番および構成要素名が表示されます。MODIFYコマンドのSETオペランドに指定した順番になります。

  2. 更新前のレコード実現値が表示されます。

  3. 更新後のレコード実現値が表示されます。

  4. MODIFYコマンドを実行するかどうかの確認メッセージが表示されます。

    1.〜3.の情報を確認し,問題がない場合はYESまたはyesを指定してください。

    MODIFYコマンドの実行を中止する場合は,NOまたはnoを指定してください。

    参考

    YESまたはyes以外を指定した場合,NOが指定されたと見なされます。

注※

更新前後のレコード実現値は次の形式で表示されます。

項番

構成要素のデータ型

更新前後のデータの表示形式

表示例

1

CHARACTER

文字列定数の形式で表示されます。

'aaabbb'

2

XCHARACTER

16進文字列定数の形式で表示されます。

X'01020304'

3

PACKED DECIMAL FIXED

10進数定数の形式で表示されます。

ただし,更新後のレコード実現値が10進数定数の形式で表現できない場合は,16進文字列定数の形式で表示されます。

123.456

4

INTEGER

SMALLINT

整数定数の形式で表示されます。

100

各定数の形式については,マニュアル「HiRDB SQLリファレンス」の「定数」を参照してください。

(b) MODIFYコマンドの実行結果

MODIFYコマンドの実行が終了した際,次に示す実行結果が表示されます。

 MODIFY INFORMATION
   ROWID                   : X'880000001900000000000100'  ...1
[説明]
  1. 更新したレコードのROWIDが表示されます。

(6) 留意事項

  1. SDB用UAP環境定義のsubschemaオペランドの-aオプションにupdateを指定してください。SDB用UAP環境定義については,「9.3 SDB用UAP環境定義【SD FMB】」を参照してください。

  2. MODIFYコマンドは,個別開始している状態で実行してください。

  3. 更新対象のレコードへの位置づけをしておいてください。位置づけをしていない場合は,エラーになります。

  4. 構成要素のデータ型とデータ属性が一致している更新値を指定する必要があります。更新値のパディング(データを追加して長さを合わせる処理)や,切り捨てなどのデータの加工は行われません。また,データ型によっては,次の条件を満たす必要があります。

    • データ型がCHARACTERまたはXCHARACTERの場合

      データ長が一致している必要があります。

    • データ型がPACKED DECIMAL FIXED,INTEGERまたはSMALLINTの場合

      更新値が,構成要素のデータ型で表現できる範囲の値である必要があります。また,更新値を16進文字列定数で指定した場合,更新値の長さは,構成要素の長さと同じである必要があります。

      なお,データ型がPACKED DECIMAL FIXEDの場合,更新値に指定した文字数で整数部桁数および小数部桁数が決まります。

      (例)

      01234.000 → 整数部桁数5,小数部桁数3

      .12345 → 整数部桁数0,小数部桁数5

      上記の例のようにゼロサプレスされません。更新値の整数部桁数および小数部桁数が,構成要素の整数部桁数および小数部桁数以下になるようにしてください。

  5. MODIFYコマンドが正常終了したあとに#EXITコマンドを実行する場合は,次のようにpdsdbexe操作コマンドを実行してください。

    • レコードの更新を実行したトランザクションを正常終了させたい場合は,COMMITコマンドを実行してください。

    • レコードの更新を実行したトランザクションを取り消したい場合は,ROLLBACKコマンドを実行してください。

そのほかの留意事項については,「17.4.4 MODIFY文」の「(4) 共通規則」を参照してください。