カテゴリ: COBOL 更新日: 2025/11/17

COBOLのEXEC SQLの使い方を完全ガイド!初心者でもわかるデータベース接続の基本構文

EXEC SQLの基本構文と書き方を学ぼう
EXEC SQLの基本構文と書き方を学ぼう

先生と生徒の会話形式で理解しよう

生徒

「先生、COBOLからデータベースにアクセスすることってできるんですか?」

先生

「もちろんできますよ。COBOLでは、EXEC SQLという特別な命令を使って、SQL文を直接書くことができます。」

生徒

「SQLって、あのデータベースの言語ですよね?COBOLの中で使えるんですか?」

先生

「そうなんです。COBOLの中にSQL文を埋め込むことで、データの取得や更新を行うことができます。今日はその基本構文を一緒に学びましょう。」

1. EXEC SQLとは?

1. EXEC SQLとは?
1. EXEC SQLとは?

COBOLのEXEC SQLとは、プログラムの中にSQL文(データベース操作用の命令)を直接書くための特別な構文です。SQL(エスキューエル)は「Structured Query Language(構造化問い合わせ言語)」の略で、データベースの中の情報を読み書きするために使われます。

つまり、COBOLとSQLを組み合わせることで、銀行や企業の基幹システムのように「ファイルだけでなく、データベース(DB)」にアクセスできるようになります。

2. EXEC SQLの基本構文

2. EXEC SQLの基本構文
2. EXEC SQLの基本構文

基本的な書き方はとてもシンプルです。SQL文をEXEC SQLEND-EXECで囲むだけです。これでCOBOLのプログラム内でSQLを実行できるようになります。


EXEC SQL
    SQL文
END-EXEC

このように、SQLをそのままCOBOLの中に書けるのが特徴です。EXEC SQLで始まり、END-EXECで終わる、これが基本の形になります。

3. データベースに接続する構文

3. データベースに接続する構文
3. データベースに接続する構文

まず最初に、データベースに接続する必要があります。これにはCONNECT文を使います。データベースのユーザー名とパスワードを指定して接続します。


EXEC SQL
    CONNECT TO sampledb USER 'user1' USING 'password1'
END-EXEC

この例では、「sampledb」というデータベースに「user1」というユーザー名と「password1」というパスワードで接続しています。実際の環境では、データベース名や認証情報はシステムによって異なります。

4. データを取得する(SELECT文)

4. データを取得する(SELECT文)
4. データを取得する(SELECT文)

次に、データベースから情報を取り出す方法を見てみましょう。SQLの基本であるSELECT文を使います。COBOLでは、結果を格納するための変数(ホスト変数)を事前に定義しておきます。


WORKING-STORAGE SECTION.
01  EMP-NAME    PIC X(30).

PROCEDURE DIVISION.
    EXEC SQL
        SELECT EMPLOYEE_NAME
        INTO :EMP-NAME
        FROM EMPLOYEE
        WHERE EMPLOYEE_ID = 1001
    END-EXEC.

    DISPLAY "社員名は:" EMP-NAME.

ここで出てくる「ホスト変数」とは、COBOLの中でSQLの結果を受け取るための変数のことです。COBOL変数の前には「コロン(:)」をつけるのがルールです。これが「SQLとCOBOLの橋渡し」のような役割をします。

5. データを更新する(INSERT・UPDATE・DELETE)

5. データを更新する(INSERT・UPDATE・DELETE)
5. データを更新する(INSERT・UPDATE・DELETE)

COBOLのEXEC SQLでは、データの追加や更新、削除もできます。以下は新しいデータを追加するINSERT文の例です。


EXEC SQL
    INSERT INTO EMPLOYEE (EMPLOYEE_ID, EMPLOYEE_NAME)
    VALUES (2001, '田中太郎')
END-EXEC.

また、データを更新する場合はUPDATE文、削除する場合はDELETE文を使います。


EXEC SQL
    UPDATE EMPLOYEE
    SET EMPLOYEE_NAME = '鈴木花子'
    WHERE EMPLOYEE_ID = 2001
END-EXEC.

EXEC SQL
    DELETE FROM EMPLOYEE
    WHERE EMPLOYEE_ID = 2001
END-EXEC.

このように、SQLの基本操作はすべてCOBOL内で実行できます。これにより、業務システムのデータを直接操作できるようになります。

6. データベース操作の流れを理解しよう

6. データベース操作の流れを理解しよう
6. データベース操作の流れを理解しよう

COBOLでデータベースを扱う際の流れは、大まかに次のようになります。

  1. データベースに接続する(CONNECT
  2. SQL文を実行する(SELECTINSERTなど)
  3. 結果を変数に格納して処理する
  4. 必要があればトランザクションを確定する(COMMIT
  5. 最後に接続を切る(DISCONNECT

この流れをしっかり覚えておけば、どんなデータベース操作でも迷わず書けるようになります。

7. 実際の動作イメージ

7. 実際の動作イメージ
7. 実際の動作イメージ

では、実際にプログラムが動作するときの出力イメージを見てみましょう。


社員名は:山田太郎

このように、SQLで取得したデータがCOBOL変数に入り、それを画面に表示できます。まるで「COBOLがデータベースと会話している」ようですね。

8. エラー処理の基本

8. エラー処理の基本
8. エラー処理の基本

データベース操作では、接続エラーやSQLの書き間違いなどのトラブルも発生します。COBOLでは、SQLCODEという変数を使ってSQLの実行結果を確認します。0なら成功、負の値ならエラー、正の値は警告を意味します。


IF SQLCODE NOT = 0
    DISPLAY "エラーが発生しました。SQLCODE=" SQLCODE
END-IF

これにより、万が一のトラブルにも対応できる堅牢なプログラムを作ることができます。

カテゴリの一覧へ
新着記事
C#でタイムスタンプの精度を上げるためのテクニックを徹底解説!(初心者向け)
C#のコーディング規約(C# Coding Conventions)とは?読みやすいコードを書くための基本ルール
C#のデストラクタ(ファイナライザ)の使い方と注意点をやさしく解説!
COBOL資産のバージョン管理とは?初心者でもわかる保守と管理の基本
人気記事
No.1
Java&Spring記事人気No1
COBOLで学ぶSELECT文のORDER BY・GROUP BY活用法!初心者でもわかるデータ集計
No.2
Java&Spring記事人気No2
C#のpartialクラスとは?初心者でも理解できるクラス分割の基本
No.3
Java&Spring記事人気No3
COBOLのCOPY句の使い方を完全ガイド!初心者でもわかる共通部品の再利用方法
No.4
Java&Spring記事人気No4
COBOLで学ぶカーソル操作と複数行データ取得の基本
No.5
Java&Spring記事人気No5
COBOLの数値データ型「PIC 9」の使い方と注意点をやさしく解説!
No.6
Java&Spring記事人気No6
C#で型を調べる方法!GetType()・typeof演算子の違いと使い方
No.7
Java&Spring記事人気No7
C#の数値型をマスターしよう!int・double・decimalの違いと使い方
No.8
Java&Spring記事人気No8
C#の日付型(DateTime)と基本的な使い方を解説|初心者向け入門ガイド