COBOLのDBアクセスパターンを学ぼう!「DROP TABLE」| 応用ガイド

COBOL(コボル)言語でテーブルを削除する「DROP TABLE」とは?

応用-DROP TABLE-イメージ

OBOL(コボル)言語のDBアクセス「DROP TABLE」とは?

リレーショナル型のデータベースに対して、テーブルを削除するには「DROP TABLE」を使用します。DROP TABLEを利用する事でテーブルに定義したインデックス情報など含めて削除することができます。DROP TABLEもよく使われる機能になりますので、使い方についてしっかり身につけましょう。

書き方:

DROP TABLE 表名

COBOL(コボル)言語のDBアクセス「DROP TABLE」の処理構成

COBOL(コボル)言語でSQLを利用する際には、データベースに接続するなど共通の処理を実施しておく必要があります。どのようなSQLを使う場合にも必要になりますので、その使い方について理解しましょう。

[DB利用の基本的な処理構成]

1.ホスト変数の定義、2.共通領域の定義、3.データベース接続、4.データベースアクセス

各処理で実施する処理内容は以下の通りです。

1.ホスト変数の定義

COBOLとDB間のデータ連携では、変数として定義した項目を利用する必要があります。この変数を利用してDBから取得したデータをCOBOLで加工、編集して利用する使い方になります。

2.共通領域の定義

DBで発生したエラー情報を格納する領域です。DB利用で発生したエラーをもとにエラーハンドリングして利用します。直接の処理をここで定義することはありません。

3.データベース接続

DBにアクセスする際は、ユーザID、パスワードを利用して接続することになります。 この接続についてもプログラミングして定義しておきます。

4.データベースアクセス

1~3の準備が整った後、初めてSQL文を記述することができます。今回ご紹介する「DROP TABLE」文はこの領域を利用してプログラミングしていきます。また、テーブルへの更新を確定させるために「COMMIT」文を合わせて実行させることがポイントです。

1.ホスト変数の定義~3.データベース接続はSQLを利用する際は必ず必要になりますので、一度サンプルを 作成して他でも活用できるようにしておきましょう。では基本的な処理構成について記述したサンプルプログラム(使用例1)を用意しましたので、その書き方について見ていきましょう。

使用例1:

※今回のDBMSは、オープンソースの「PostgreSQL」を使用しています。
※USERNAME、PASSWORDはご自身の環境に合わせて指定してください。
(省略します)

応用-DROP TABLEプログラム1-使用例1

テーブル(test1:処理前):
応用-DROP TABLE1-実行結果 test1:処理前

テーブル(test1:処理後):
応用-DROP TABLE1-実行結果 test1:処理後

COBOL(コボル)言語のDBアクセス「DROP TABLE」の応用的な使い方

DBアクセス及び「DROP TABLE」の基本的な処理構成と書き方についてご理解いただけたでしょうか?今度は応用的な使い方について考えていきましょう。「DROP TABLE」は今回ご紹介した単一テーブルの削除だけでなく複数テーブルの削除も一度に行うことができます。実践でも使えるように実際にプログラミングして動きを確認してみましょう。

使用例2:

  1. IDENTIFICATION DIVISION.
  2. PROGRAM-ID. db_orderby_sample02.
  3. ENVIRONMENT DIVISION.
  4. DATA DIVISION.
  5. WORKING-STORAGE SECTION.
  6. * 1.ホスト変数の定義
  7. EXEC SQL BEGIN DECLARE SECTION END-EXEC.
  8. 01 DBNAME PIC X(32) VALUE "testdb".
  9. 01 USERNAME PIC X(32) VALUE "********".
  10. 01 PASSWORD PIC X(32) VALUE "********".
  11.  
  12. EXEC SQL END DECLARE SECTION END-EXEC.
  13.  
  14. * 2.共通領域の定義
  15. EXEC SQL INCLUDE SQLCA END-EXEC.
  16.  
  17. PROCEDURE DIVISION.
  18. * 3.データベース接続
  19. EXEC SQL
  20.  CONNECT :USERNAME IDENTIFIED BY :PASSWORD
  21.     USING :DBNAME
  22. END-EXEC.
  23.  
  24. * 4.データベースアクセス
  25. EXEC SQL
  26.  DROP TABLE test1,test3
  27. END-EXEC.
  28. EXEC SQL
  29.  COMMIT
  30. END-EXEC.
  31. STOP RUN.
  32. END PROGRAM db_drop_sample02.

テーブル(test1:処理前):
応用-DROP TABLE1-実行結果 test1:処理前

テーブル(test3:処理前):
応用-DROP TABLE1-実行結果 test3:処理前

テーブル(test1:処理前):
応用-DROP TABLE1-実行結果 test1:処理後

テーブル(test3:処理前):
応用-DROP TABLE1-実行結果 test3:処理後

練習問題

最後に練習問題にチャレンジしてみましょう

問題) あるテーブルから継承された別のテーブルが存在する場合、継承元のテーブルを削除すれば継承先のテーブルも削除することができるでしょうか?

答え)

データベースにもよりますが通常できません。継承先のテーブルをまず削除してから継承元のテーブルを削除するようにしましょう。このようにSQLであってもデータベースによっては使用できる機能が限定されていることがありますので、利用の際は注意するようにしましょう。

この記事を読んだ人は、こちらの記事も読んでいます

あなたのCOBOL技術を活かしませんか?

株式会社COBOLの求人・転職・募集情報を見る

COBOL入門のカテゴリー

|  基礎  |  応用  |  勉強  |  試験  |  辞書  |

取引企業様 募集中
COBOL技術者 募集
COBOL魂
COBOL入門