Db2 for z/OSのプログラミング
SQL ステートメントを含むアプリケーション・プログラムを使用して、Db2 for z/OS オブジェクトでデータ定義またはデータ操作を実行します。
アプリケーション・プログラミングのサンプルを入手できる場所
Db2 のプログラミングサンプルをご覧ください。どのようなアプリケーション開発ツールを使用できますか?
SQL アプリケーションで行う必要がある事柄
アプリケーションで、以下のタスクを完了する必要があります。
- Db2 データベースシステムとの間でデータをやり取りするための変数を宣言します。
- SQL ステートメントを実行する。
- SQL エラーを確認して処理します。
SQL アプリケーションの作成に使用できるプログラミング言語
Db2 for z/OS データサーバー用のアプリケーションプログラムは、以下のいずれかのプログラミング言語で作成できます
- APL2®
- アセンブラー
- C および C++
- C# 2 ( .NET 経由)
- COBOL
- Fortran
- 高級アセンブラ(またはHLASM)
- Java™ 1
- Node.js 3
- Perl 2
- PHP 2
- PL/I
- Python 4
- REXX
- ルビーオンレール 2
- SQL プロシージャー型言語
- Visual Basic 2
- IBM Data Server Driver for JDBC and SQLJ を使用して Db2 for z/OS に接続する。
- Db2 for Linux®, UNIX, and Windows クライアント・ドライバーを使用した Db2 for z/OS へのリモート接続。
- IBM_DB Node.js driverを使用してDb2 for z/OSに接続します。
- 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 アプリケーションの準備には、以下のタスクが関係しています。
- アプリケーション内の各ソース・ファイルに関して
- ソース・ファイルのコピーを変更し、SQL ステートメントを、ホスト言語呼び出しから接続機能に変換します。
- データベース要求モジュール (DBRM) を作成します。
このステップを実行する推奨の方法は、コンパイラに Db2 コプロセッサを呼び出すよう指示することです。 ただし、コンパイラを実行するステップの前に、 Db2 プリコンパイラを実行するステップを追加することができます。
- 変更したソースファイルをコンパイルして、 z/OS オブジェクトコードを生成します。
- リンク編集により、すべてのオブジェクトモジュールのオブジェクトコードを編集し、 z/OS ロードモジュールを生成します。
- 各ソースファイルのDBRMを Db2 パッケージにバインドし、 Db2 パッケージを Db2 プランにバインドします。
| アプリケーションのタイプ | プログラムの準備ステップ |
|---|---|
| ODBC | コンパイル、プリリンク、リンク・エディット |
| JDBC | コンパイル |
| SQLJ | 変換、コンパイル、カスタマイズ、バインド |
| pureQuery® | 用途IBM® Optim pureQuery Runtime |
| REXX | プログラム準備なし |
詳細情報の検索先
以下の表に、よく使用される各言語のアプリケーション・プログラミングに関する詳細を示します。
| 件名 | 参照先トピック |
|---|---|
| 変数の宣言 | CおよびC++におけるホスト変数およびインジケータ変数の宣言 、SQLおよびCのデータ型 |
| SQL ステートメントの実行 | SQL ステートメントを発行する C および C++ アプリケーション |
| SQL エラーの検査と処理 | CおよびC++におけるSQL通信領域、SQLSTATE、およびSQLCODEの定義、 SQLステートメントの実行確認 |
| アプリケーションの実行準備 | DB2 for z/OS 上で実行するアプリケーションの準備 |
| 件名 | 参照先トピック |
|---|---|
| 変数の宣言 | データ・タイプとデータ変換 |
| SQL ステートメントの実行 | DB2 ODBC でのトランザクション処理 |
| SQL エラーの検査と処理 | 診断 |
| アプリケーションの実行準備 | DB2 ODBC アプリケーションの準備および実行の概要 |
| 件名 | 参照先トピック |
|---|---|
| 変数の宣言 | COBOL におけるホスト変数とインジケータ変数の宣言, 等価な SQL と COBOL データ型 |
| SQL ステートメントの実行 | SQL ステートメントを発行する COBOL アプリケーション |
| SQL エラーの検査と処理 | COBOL でのSQL通信領域、SQLSTATE、SQLCODEの定義、 SQL文の実行のチェック |
| アプリケーションの実行準備 | DB2 for z/OS 上で実行するアプリケーションの準備 |
| 件名 | 参照先トピック |
|---|---|
| 開始点 | JDBC アプリケーション・プログラミング |
| 変数の宣言 | JDBC アプリケーションの変数、 Javaアプリケーションのデータベースデータ型に対応するデータ型 |
| SQL ステートメントの実行 | SQL を実行するための JDBC インターフェース |
| SQL エラーの検査と処理 | IBM Data Server Driver for JDBC and SQLJ での例外と警告 |
| アプリケーションの実行準備 | JDBC プログラム用のプログラム準備 |
| 件名 | 参照先トピック |
|---|---|
| 開始点 | SQLJ アプリケーション・プログラミング |
| 変数の宣言 | SQLJアプリケーションの変数、 Javaアプリケーションのデータベースデータ型にマッピングされるデータ型 |
| SQL ステートメントの実行 | SQLJ アプリケーションでの SQL ステートメントの実行 |
| SQL エラーの検査と処理 | SQLJ アプリケーションで SQL のエラーと警告を処理する |
| アプリケーションの実行準備 | SQLJ プログラム用のプログラム準備 |
| 件名 | 参照先トピック |
|---|---|
| 開始点 | IBM データ・サーバー用の JSON アプリケーション開発 |
| JSON のインストール要件 | JSON Java API のインストール要件 |
| JSON ドキュメントの処理 | Java API を使用した JSON ドキュメントの操作 |
| 件名 | 参照先トピック |
|---|---|
| 変数の宣言 | PL/I におけるホスト変数とインジケータ変数の宣言, 等価な SQL と PL/I データ型 |
| SQL ステートメントの実行 | SQL ステートメントを発行する PL/I アプリケーション |
| SQL エラーの検査と処理 | PL/I での SQL 通信域、SQLSTATE、および SQLCODE の定義、 SQL ステートメントの実行のチェック |
| アプリケーションの実行準備 | DB2 for z/OS 上で実行するアプリケーションの準備 |
| 件名 | 参照先トピック |
|---|---|
| 変数の宣言 | REXXプログラムの入力データ型を Db2 に渡す、 REXXとSQLのデータ型 |
| SQL ステートメントの実行 | SQL ステートメントを発行する REXX アプリケーション |
| SQL エラーの検査と処理 | REXXにおけるSQL通信領域、SQLSTATE、SQLCODEの定義、 SQL文の実行確認 |
| アプリケーションの実行準備 | プログラム準備は不要。 |
他の学習リソース
Db2 アプリケーションプログラミングのトレーニングに関する情報は、 Db2 for z/OS のトレーニングコースをご覧ください。