VSAMファイル(KSDS)の更新方法
[OS]MVS
[リリース] 5.18, 6.07, 6.08, 6.09E
[キーワード] base, datastep, vsam, ksds, infile, file, put, feedback, key=
[質問]VSAMファイル(KSDS)にレコードを追加、変更、削除するには、DATAステップをどのようにコーディングすればよいでしょうか。
[回答]
レコードの追加処理について説明します。更新しようとするレコード情報は事前にSASデータセットとして作成してください。 data update; input @1 code $char6. @10 name $char15. @25 sex $1. @27 birth nengo7. @35 busho $char3.; cards; ....*....1....*....2....*....3....*....4....*....5.. 000030 SAKURADA YOUKO F S251115 D50 000040 TAHARA YOSHI M S261115 D50 000050 YAMAZAKI HIROMIF S271115 D50 ; run; data _null_; set update; infile in vsam key=code feedback=rc; file in vsam; put @1 code $char6. @10 name $char15. @25 sex $1. @27 birth nengo7. @35 busho $char3.; if rc=8 then do; _error_=0; rc=0; file log; put 'ERROR: KEY=' CODE ' のレコードは既に存在しています。'; return; end; run; (更新後のVSAMファイルの内容) ....*....1....*....2....*....3....*....4....*....5.. 000010 YAMADA ICHIRO M S380814 A00 000020 SAKAI KEIKO F S440304 A10 000030 YAMAMOTO SAN M S410511 B00 000040 TAHARA YOSHI M S261115 D50 000050 YAMAZAKI HIROMIF S271115 D50 変更、削除はINFILEステートメントのFEEDBACKオプションをもとに対応してください。 4 : VSAMファイルの終了レコードになったかあるいは実際に存在するキーより大きい 値を指定した。 8 : 該当のレコードは既に存在する。 12 : レコードキーは範囲外である。 16 : 該当のレコードは存在しない。
[参考]
|