COBOLのINSERT文の使い方完全ガイド!初心者でもわかるデータベースへのデータ登録
生徒
「先生、COBOLでデータベースに新しいデータを追加するにはどうすればいいですか?」
先生
「それにはINSERT文を使います。INSERT文は、テーブルに新しい行を追加するためのSQL文です。」
生徒
「具体的にはどう書けばいいんですか?」
先生
「COBOLではEXEC SQLを使ってSQL文を埋め込みます。値を直接書く場合もありますが、通常はホスト変数を使って安全に値を渡します。」
1. INSERT文とは?
INSERT文は、データベースのテーブルに新しい行を追加するためのSQL文です。テーブルとは、エクセルの表のように行と列で構成されたデータの集まりです。INSERT文を使うことで、社員情報や顧客情報など、新しいデータを簡単に登録できます。
2. COBOLでのINSERT文の埋め込み方法
COBOLでは、SQL文をEXEC SQLとEND-EXECの間に記述します。値を直接書くこともできますが、ホスト変数を使うことで、プログラム内の変数の値を安全にSQL文に渡すことができます。
WORKING-STORAGE SECTION.
01 EMP-ID PIC 9(4) VALUE 1004.
01 EMP-NAME PIC X(30) VALUE "田中太郎".
01 DEPT PIC X(10) VALUE "営業部".
PROCEDURE DIVISION.
EXEC SQL
INSERT INTO EMPLOYEE (EMPLOYEE_ID, EMPLOYEE_NAME, DEPARTMENT)
VALUES (:EMP-ID, :EMP-NAME, :DEPT)
END-EXEC.
この例では、ホスト変数:EMP-ID、:EMP-NAME、:DEPTの値をEMPLOYEEテーブルに追加しています。
3. ホスト変数を使うメリット
ホスト変数を使うと、値を直接SQL文に埋め込むより安全です。直接文字列や数字を埋め込むと、SQLインジェクションなどのセキュリティリスクが高まります。ホスト変数を使うことで、プログラム内の変数を安全にSQL文に渡せます。また、複数回INSERTを行う場合も、変数の値を変えるだけで簡単に処理できます。
4. INSERT文を使う際の注意点
- テーブルに必須項目がある場合、必ず値を指定する。
- 重複する主キーをINSERTするとエラーになるので、IDの管理には注意。
- ホスト変数の型とテーブルの列の型を合わせる。
- SQLCODEを確認してINSERTが成功したかを判断する。
5. 実践例:社員情報の登録
WORKING-STORAGE SECTION.
01 EMP-ID PIC 9(4) VALUE 1005.
01 EMP-NAME PIC X(30) VALUE "佐藤花子".
01 DEPT PIC X(10) VALUE "開発部".
PROCEDURE DIVISION.
EXEC SQL
INSERT INTO EMPLOYEE (EMPLOYEE_ID, EMPLOYEE_NAME, DEPARTMENT)
VALUES (:EMP-ID, :EMP-NAME, :DEPT)
END-EXEC.
IF SQLCODE = 0
DISPLAY "登録成功:" EMP-NAME
ELSE
DISPLAY "登録失敗:" SQLCODE
END-IF.
登録成功:佐藤花子
この例では、開発部に新しい社員を登録し、SQLCODEを確認して成功かどうかを表示しています。INSERT文の基本を理解すれば、COBOLでのデータベース登録処理が安全かつ簡単に行えます。
6. 初心者向けのポイント
COBOLでINSERT文を使うときは、ホスト変数を活用すること、必須項目を必ず埋めること、SQLCODEで結果を確認することを意識してください。最初は小さいテーブルで試しながら理解を深めると、データベースへの登録処理をスムーズに覚えられます。