14.3.6 SD FMBのSDBデータベースのレコードを更新する
SD FMBのSDBデータベースのレコードを更新します。
-
SDBデータベース名:FMB1
-
更新対象のレコード名:FMB1_RECB
SD FMBのSDBデータベースの階層構造,および格納されているレコード実現値については,「14.3.5 SD FMBのSDBデータベースのレコードを検索する」と同じです。
手順
-
pdsdbexeコマンドを実行する
pdsdbexe -d SD
SD FMBのSDBデータベースにアクセスする場合,-dオプションにSDを指定します。
-uオプションに認可識別子を指定した場合は,手順の2.をスキップして,手順の3.に進んでください。-uオプションに認可識別子およびパスワードを指定した場合は,手順の2.〜3.をスキップして,手順の4.に進んでください。
-
認可識別子の入力要求に応答する
pdsdbexe **** SDB Database Executor 10-02 **** 2019-04-16 16:25:23 user-id:"User01" ←認可識別子を指定します。
HiRDBに接続する認可識別子を指定して,Enterキーを押してください。
-
認可識別子に英小文字がある場合は,引用符( " )で囲んでください。
-
-
パスワードの入力要求に応答する
pdsdbexe **** SDB Database Executor 10-02 **** 2019-04-16 16:25:23 user-id:"User01" "User01" password: ←パスワードを指定します。
認可識別子のパスワードを指定して,Enterキーを押してください。
-
パスワードに英小文字がある場合は,引用符( " )で囲んでください。
-
パスワードに入力した文字は表示されません。
-
-
STARTコマンドを実行して個別開始する
START "FMB1";
STARTコマンドの実行結果:
DIRECTORY CHECK DATE INFORMATION PDSDBDEF EXEC DATE : 2019-04-16 16:24:26.64 SDB DIRECTORY UPDATE DATE : 2019-04-16 16:26:33.61 ----+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8 HiRDB SERVER VERSION INFORMATION SERVER VERSION : 10-02 KFPB64050-I DINF(GET DATE) command processing completed ----+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8 START INFORMATION SDB DATABASE NAME "FMB1" HANDLE NUMBER : 1 KFPB64050-I DINF(GET SDB SUMMARY) command processing completed KFPB64050-I DINF(GET SDB DETAIL) command processing completed KFPB64050-I START command processing completed
-
FETCHコマンドを実行して,ルートレコードの検索を行う
FETCH FIRST "FMB1_RECA";
FETCHコマンドの実行結果:
FETCH INFORMATION FETCH DATA 1 "DBKEY_L1" 'AA00' 2 "RECA_UD1" 123. 3 "RECA_UD2" -9.8 ROWID : X'1C0000001900000000000100' KFPB64050-I FETCH command processing completed
-
FETCHコマンドを実行して,子レコードの検索を行う
FETCH FIRST "FMB1_RECB" WITHIN OWNER;
FETCHコマンドの実行結果:
FETCH INFORMATION FETCH DATA 1 "DBKEY" 1 2 "RECB_UD1" 'B1' 3 "RECB_UD2" X'3131' FETCH SERIAL NUM : 1 ROWID : X'1C0000001900000000000200' RECORD POINTER STATUS : FIRST KFPB64050-I FETCH command processing completed
-
FETCHコマンドを実行して,更新対象レコードへの位置づけを行う
FETCH FOR UPDATE NEXT "FMB1_RECB" WITHIN OWNER;
FETCHコマンドの実行結果:
FETCH INFORMATION FETCH DATA 1 "DBKEY" 2 2 "RECB_UD1" 'B2' 3 "RECB_UD2" X'3232' FETCH SERIAL NUM : 2 ROWID : X'1C0000001900000000000800' RECORD POINTER STATUS : LAST KFPB64050-I FETCH command processing completed
-
MODIFYコマンドを実行して,レコードを更新する
MODIFY "FMB1_RECB" SET "RECB_UD2" = X'3333';
-
更新対象のレコードが正しいかを確認する
MODIFY DATA 1 "RECB_UD2" <BEFORE> X'3232' <AFTER> X'3333' AGREE TO MODIFY ? [ENTER YES OR NO] YES ←上記の情報を確認後,YESを指定します。
MODIFYコマンドの実行結果:
MODIFY INFORMATION ROWID : X'1C0000001900000000000800' KFPB64050-I MODIFY command processing completed
-
FETCHコマンドを実行して,子レコードの検索を行う
FETCH FIRST "FMB1_RECB" WITHIN OWNER;
FETCHコマンドの実行結果:
FETCH INFORMATION FETCH DATA 1 "DBKEY" 1 2 "RECB_UD1" 'B1' 3 "RECB_UD2" X'3131' FETCH SERIAL NUM : 1 ROWID : X'1C0000001900000000000200' RECORD POINTER STATUS : FIRST KFPB64050-I FETCH command processing completed
-
FETCHコマンドを実行して,レコードが更新されたことを確認する
FETCH NEXT "FMB1_RECB" WITHIN OWNER;
FETCHコマンドの実行結果:
FETCH INFORMATION FETCH DATA 1 "DBKEY" 2 2 "RECB_UD1" 'B2' 3 "RECB_UD2" X'3333' FETCH SERIAL NUM : 2 ROWID : X'1C0000001900000000000800' RECORD POINTER STATUS : LAST KFPB64050-I FETCH command processing completed
-
COMMITコマンドを実行して,レコードの更新を確定する
COMMIT;
COMMITコマンドの実行結果:
KFPB64050-I COMMIT command processing completed
-
#EXITコマンドを実行して,pdsdbexeコマンドを終了する
#EXIT;
#EXITコマンドの実行結果:
KFPB64050-I DISCONNECT command processing completed KFPB64050-I #EXIT command processing completed KFPB64000-I The pdsdbexe terminated, return code = 0
- 参考
-
コマンド入力画面に表示されるプロンプトについては,「表14-3 入力画面で表示されるプロンプト」を参照してください。