COBOLのUPDATE文でデータを更新する方法!初心者向けサンプル例
生徒
「先生、COBOLでデータベースにあるデータを変更したい場合はどうすればいいですか?」
先生
「その場合はUPDATE文を使います。UPDATE文は、既存のデータを新しい値に変更するSQL文です。」
生徒
「どのように書くのか、具体的な例を教えてください。」
先生
「それでは、基本的なサンプルを見ていきましょう!」
1. UPDATE文とは?
UPDATE文は、データベースの既存の行の値を変更するために使います。テーブル内の特定の行を条件で指定し、新しい値を設定します。例えば社員テーブルの部署名を変更したり、住所情報を更新したりする場合に使用します。SQLでは、条件を指定するWHERE句が重要で、指定しないとテーブル全体のデータが変更されるので注意が必要です。
2. COBOLでのUPDATE文の基本構文
COBOLでUPDATE文を使うときは、EXEC SQLとEND-EXECでSQL文を囲みます。値はホスト変数を使用することで、プログラム内の変数から安全に値を渡せます。
WORKING-STORAGE SECTION.
01 EMP-ID PIC 9(4) VALUE 1004.
01 NEW-DEPT PIC X(10) VALUE "営業部".
PROCEDURE DIVISION.
EXEC SQL
UPDATE EMPLOYEE
SET DEPARTMENT = :NEW-DEPT
WHERE EMPLOYEE_ID = :EMP-ID
END-EXEC.
この例では、社員IDが1004の社員の部署を「営業部」に変更しています。
3. ホスト変数を使うメリット
ホスト変数を使うことで、SQL文に直接値を埋め込むより安全にデータを更新できます。プログラム内の変数に値を設定するだけで簡単にSQLに渡せます。また、変数の値を変えるだけで複数の行を条件に応じて更新することも可能です。これにより、セキュリティリスクや手作業でのミスを減らせます。
4. UPDATE文の注意点
- 条件を指定しないUPDATEはテーブル全体を変更するため危険。
- ホスト変数の型をテーブルの列と一致させる必要がある。
- 更新対象の行が存在しない場合、変更は行われない。
- SQLCODEを確認して、更新が成功したかどうかをチェックする。
5. 実践例:社員部署の更新
WORKING-STORAGE SECTION.
01 EMP-ID PIC 9(4) VALUE 1005.
01 NEW-DEPT PIC X(10) VALUE "開発部".
PROCEDURE DIVISION.
EXEC SQL
UPDATE EMPLOYEE
SET DEPARTMENT = :NEW-DEPT
WHERE EMPLOYEE_ID = :EMP-ID
END-EXEC.
IF SQLCODE = 0
DISPLAY "更新成功:" EMP-ID " の部署を " NEW-DEPT
ELSE
DISPLAY "更新失敗:" SQLCODE
END-IF.
更新成功:1005 の部署を 開発部
この例では、社員IDが1005の社員の部署を開発部に変更し、SQLCODEで更新結果を確認しています。COBOLでUPDATE文を使うと、既存のデータを簡単かつ安全に更新できることがわかります。
6. 初心者向けポイント
UPDATE文を使うときは、必ずWHERE句で条件を指定すること、ホスト変数を使って安全に値を渡すこと、SQLCODEで更新結果を確認することを意識してください。まずは小さなテーブルで試しながら、更新処理の流れを理解することが重要です。