Db2 for z/OSのプログラミング

SQL ステートメントを含むアプリケーション・プログラムを使用して、Db2 for z/OS オブジェクトでデータ定義またはデータ操作を実行します。

アプリケーション・プログラミングのサンプルを入手できる場所

Db2 のプログラミングサンプルをご覧ください。

どのようなアプリケーション開発ツールを使用できますか?

Db2 アプリケーションの開発には、ツールとIDEを参照してください

SQL アプリケーションで行う必要がある事柄

アプリケーションで、以下のタスクを完了する必要があります。

  1. Db2 データベースシステムとの間でデータをやり取りするための変数を宣言します。
  2. SQL ステートメントを実行する。
  3. SQL エラーを確認して処理します。

SQL アプリケーションの作成に使用できるプログラミング言語

Db2 for z/OS データサーバー用のアプリケーションプログラムは、以下のいずれかのプログラミング言語で作成できます

  1. IBM Data Server Driver for JDBC and SQLJ を使用して Db2 for z/OS に接続する。
  2. Db2 for Linux®, UNIX, and Windows クライアント・ドライバーを使用した Db2 for z/OS へのリモート接続。
  3. IBM_DB Node.js driverを使用してDb2 for z/OSに接続します。
  4. IBM_DB Python driverを使用してDb2 for z/OSに接続します。

SQLアプリケーションと Db2 テーブル間でデータをやり取りするにはどうすればよいですか?

SQLアプリケーションと Db2 テーブル間でデータをやり取りするには、ホスト変数とインジケータ変数を使用します。 ホスト変数はDb2 テーブルとやり取りされるデータを含むアプリケーション変数です。 標識変数 は、ホスト変数にデータが入っているかどうかを示す値が含まれるアプリケーション変数です。

静的 SQL アプリケーションと動的 SQL アプリケーション

静的 SQL アプリケーションの場合、SQL ステートメントが直接アプリケーションに書き込まれます。 アプリケーションの実行時、ユーザーが変更できるのは変数値のみです。 動的 SQL アプリケーションでは、アプリケーション実行時にユーザーが SQL ステートメントを提供します。 通常、動的 SQL アプリケーションは静的 SQL アプリケーションよりも柔軟性があります。 ただし、動的アプリケーションは作成が難しく、アプリケーション実行時の処理内容が多くなるため実行速度が遅くなることがよくあります。

次の表は、 Db2 に同梱されているサンプルプログラムの一部を記載したもので、静的および動的SQLアプリケーションの作成方法を示しています。 ソースコードはデータセット 接頭辞.SDSNSAMP でご覧いただけます。

プログラム名 言語 SQL のタイプ
DSN8BC3 COBOL 静的
DSN8BD3 C 静的
DSN8BP3 PL/I 静的
DSNTEP2 PL/I 動的

実行する SQL アプリケーションの準備方法

ほとんどの SQL アプリケーションの準備には、以下のタスクが関係しています。

  1. アプリケーション内の各ソース・ファイルに関して
    • ソース・ファイルのコピーを変更し、SQL ステートメントを、ホスト言語呼び出しから接続機能に変換します。
    • データベース要求モジュール (DBRM) を作成します。

    このステップを実行する推奨の方法は、コンパイラに Db2 コプロセッサを呼び出すよう指示することです。 ただし、コンパイラを実行するステップの前に、 Db2 プリコンパイラを実行するステップを追加することができます。

  2. 変更したソースファイルをコンパイルして、 z/OS オブジェクトコードを生成します。
  3. リンク編集により、すべてのオブジェクトモジュールのオブジェクトコードを編集し、 z/OS ロードモジュールを生成します。
  4. 各ソースファイルのDBRMを Db2 パッケージにバインドし、 Db2 パッケージを Db2 プランにバインドします。
注:
ODBC を使用する C または C++ プログラム、 JDBC または SQLJ を使用する Java プログラム、および REXX プログラムでは、実行可能な SQL アプリケーションを準備する手順が異なります。 次の表に、そのステップをまとめます。
アプリケーションのタイプ プログラムの準備ステップ
ODBC コンパイル、プリリンク、リンク・エディット
JDBC コンパイル
SQLJ 変換、コンパイル、カスタマイズ、バインド
pureQuery® 用途IBM® Optim pureQuery Runtime
REXX プログラム準備なし

詳細情報の検索先

以下の表に、よく使用される各言語のアプリケーション・プログラミングに関する詳細を示します。

表 2. ODBC アプリケーション作成のリソース
件名 参照先トピック
変数の宣言 データ・タイプとデータ変換
SQL ステートメントの実行 DB2 ODBC でのトランザクション処理
SQL エラーの検査と処理 診断
アプリケーションの実行準備 DB2 ODBC アプリケーションの準備および実行の概要
表 3. で Db2 アプリケーションを書くためのリソース COBOL
件名 参照先トピック
変数の宣言 COBOL におけるホスト変数とインジケータ変数の宣言, 等価な SQL と COBOL データ型
SQL ステートメントの実行 SQL ステートメントを発行する COBOL アプリケーション
SQL エラーの検査と処理 COBOL でのSQL通信領域、SQLSTATE、SQLCODEの定義SQL文の実行のチェック
アプリケーションの実行準備 DB2 for z/OS 上で実行するアプリケーションの準備
表 6. JSON を使用したプログラミングに関するリソース
件名 参照先トピック
開始点 IBM データ・サーバー用の JSON アプリケーション開発
JSON のインストール要件 JSON Java API のインストール要件
JSON ドキュメントの処理 Java API を使用した JSON ドキュメントの操作
表 7. で Db2 アプリケーションを書くためのリソース PL/I
件名 参照先トピック
変数の宣言 PL/I におけるホスト変数とインジケータ変数の宣言, 等価な SQL と PL/I データ型
SQL ステートメントの実行 SQL ステートメントを発行する PL/I アプリケーション
SQL エラーの検査と処理 PL/I での SQL 通信域、SQLSTATE、および SQLCODE の定義SQL ステートメントの実行のチェック
アプリケーションの実行準備 DB2 for z/OS 上で実行するアプリケーションの準備
表 8. REXXで Db2 アプリケーションを書くためのリソース
件名 参照先トピック
変数の宣言 REXXプログラムの入力データ型を Db2 に渡すREXXとSQLのデータ型
SQL ステートメントの実行 SQL ステートメントを発行する REXX アプリケーション
SQL エラーの検査と処理 REXXにおけるSQL通信領域、SQLSTATE、SQLCODEの定義SQL文の実行確認
アプリケーションの実行準備 プログラム準備は不要。

他の学習リソース

Db2 アプリケーションプログラミングのトレーニングに関する情報は、 Db2 for z/OS のトレーニングコースをご覧ください。