Db2 command line processorを使用して、Db2 データの照会と変更、ストアード・プロシージャーの呼び出し、および z/OS® UNIX System Services コマンドの発行を対話式に行うことができます。 この演習では、それらのタスクを実行する方法を示します。
始める前に
このチュートリアルを開始する前に、システム管理者が環境を適切にカスタマイズしていることを確認してください。
- Db2 command line processorを使用できるように、z/OS UNIX System Services .profile ファイルがセットアップされている必要があります。
- Db2 command line processor プロパティファイルには、接続情報として MYALIAS01 エイリアスを含める必要があります。 Db2 command line processor のプロパティファイルには、以下の形式の行が存在しなければなりません。
MYALIAS01=connection-url,user-id,password
CONNECT ( Db2 コマンドラインプロセッサ ) は、 接続-URL、ユーザーID、 パスワードの構文を説明しています。
- Db2 command line processor を開始するコマンドの
db2 のエイリアスを作成する必要がありますalias db2="java com.ibm.db2.clp.db2"
- 接続先のデータベース・サーバーは、データ共用システムであってはなりません。
詳細は、「 Db2 コマンドラインプロセッサの設定」 を参照してください。
このタスクについて
このチュートリアルでは、 Db2 command line processor でSPUFIまたは DSNTEP2 で実行できるのと同じタスクを実行する方法を説明します。 さらに、このチュートリアルでは、Db2 command line processorからストアード・プロシージャーを呼び出す方法を説明します。
このチュートリアルでは、以下のDb2 command line processor・タスクの実行方法を学習します。
- Db2 command line processorを開始および停止する
- Db2 command line processorのオプションをリストし、変更する
- データベース・サーバーに接続する
- SQL ステートメントを実行して、表の作成、表へのデータの設定、表の照会およびドロップを行う
- ストアード・プロシージャーを作成する
- ストアード・プロシージャーの呼び出し
このチュートリアルで使用される表記法 : Db2 command line processor への入力はほとんどが大文字と小文字を区別しませんが、SQLステートメントと Db2 command line processor コマンドは、他の Db2 操作との整合性を保つため、大文字で表示されます。
プロシージャー
- Db2 command line processor を起動し、 Db2 command line processor のオプションを設定します。
- Db2 command line processor を起動するには、事前に設定したエイリアスを入力します。
Db2 command line processor が開始され、次のプロンプトが表示されます
db2 =>
- Db2 データベースサーバーに、事前に定義された接続エイリアスを使用して接続します。
CONNECT to MYALIAS01
接続が確立され、接続に関する以下の情報が表示されます。
Database Connection Information
Database server =Db2 server version
SQL authorization ID =User ID
JDBC Driver =JDBC driver name and version
DSNC101I : The "CONNECT" command completed successfully.
db2 =>
Db2 command line processor はJava™データベースアプリケーションであるため、 JDBC ドライバーに関する情報が表示されます。
- Db2 command line processor オプションの現在の設定を確認し、それが Db2 command line processor セッションに適しているかどうかを判断します。
LIST COMMAND OPTIONS
Db2 command line processor のオプションと現在の設定の一覧が表示されます
Option Description Current Setting
------ ------------------------------------------- ---------------
-a Display SQLCA OFF
-c Auto-Commit ON
-f Read from input file OFF
-o Display output ON
-s Stop execution on command error OFF
-t Set statement termination character OFF
-u Use user ID and password for input file OFF
-v Echo current command OFF
-x Suppress printing of column headings OFF
-z Save all output to output file OFF
DSNC101I : The "LIST COMMAND OPTIONS" command completed successfully.
db2 =>
オプションは表1 に記載されています。
- コミット操作を明示的に実行するため、自動コミットを無効にしたいとします。 これを行うには、以下のように c オプションを OFF に設定する必要があります。
UPDATE COMMAND OPTIONS USING c OFF
自動コミット・オプションが正常に無効になったことを示す、以下のメッセージが表示されます。
DSNC101I : The "UPDATE COMMAND OPTIONS" command completed successfully.
db2 =>
- データを照会および変更する SQL ステートメントを実行します。
- SQL CREATE ステートメントを実行して、サンプル従業員表のコピーを作成します。
CREATE TABLE MY_EMP LIKE DSN8C10.EMP
- SQL INSERT ステートメントを実行して、サンプル従業員表からサンプル従業員表のコピーにデータを追加します。
INSERT INTO MY_EMP SELECT * FROM DSN8C10.EMP
- 前に実行した SQL 操作をコミットします。
- 出力を画面上で読みやすくするために、返される列データの最大幅を 12 に設定します。
CHANGE MAXCOLUMNWIDTH TO 12
- 以下の SELECT ステートメントを実行して、表の作成および行の挿入が正常に行われたことを確認します。
SELECT FIRSTNME, MIDINIT, LASTNAME FROM MY_EMP ORDER BY LASTNAME
表 MY_EMP の行が表示されます。
FIRSTNME MIDINIT LASTNAME
BRUCE ADAMSON
ROY R ALONZO
DAVID BROWN
JOHN B GEYER
JASON R GOUNOT
...
MICHAEL L THOMPSON
JAMES H WALKER
HELENA WONG
KIYOSHI YAMAMOTO
MASATOSHI J YOSHIMURA
42 record(s) selected
db2 =>
- Db2 command line processor を終了し、異なるオプション設定で再起動します。
- Db2 command line processor を終了する。
Db2 command line processor を終了する
TERMINATE
管理は z/OS UNIX System Services に戻ります。
- Db2 command line processor を開始する際に、終了文字をシャープ記号 (#) に設定することで、SQL PL プロシージャ内のステートメントをセミコロン (;) で終了できるようになります。
- 出力結果をファイルに保存するための Db2 command line processor オプションを変更します。 Db2 command line processor が出力する結果を clplog.txt という名前のファイルに保存し、画面に出力するように指示するには、次のコマンドを実行します。
UPDATE COMMAND OPTIONS USING z ON clplog.txt#
- Db2 データベースサーバーに、事前に定義された接続エイリアスを使用して接続します。
- ストアード・プロシージャーを作成し、呼び出します。 出力をファイルに保存します。
- ストアード・プロシージャー CALC_SAL を作成します。
ディスプレイに以下の行を入力します。 各行を入力した後に Enter キーを押します。 コマンド行プロセッサーは、ポンド記号 (#) までのすべてのテキストを単一のステートメントと見なします。
CREATE PROCEDURE CALC_SAL(INOUT EMPNO_IN CHAR(6),
IN PCT_RAISE DECIMAL(2,2),
OUT EMPNAME VARCHAR(15),
OUT SAL_CALC DECIMAL(9,2))
LANGUAGE SQL
BEGIN
DECLARE CURRENT_SALARY DECIMAL(9,2) DEFAULT 0;
SELECT LASTNAME, SALARY INTO EMPNAME, CURRENT_SALARY FROM MY_EMP
WHERE EMPNO=EMPNO_IN;
SET SAL_CALC=CURRENT_SALARY*PCT_RAISE+CURRENT_SALARY;
END#
- CALC_SAL ストアード・プロシージャーを呼び出し、5% の昇給を行った場合に従業員 '000100' の給料がどれほどになるかを調べます。
CALL CALC_SAL('000100',.05,?,?)#
以下の出力が表示されます。
Value of output parameters
--------------------------
Parameter Name : EMPNO_IN
Parameter Value : 000100
Parameter Name : EMPNAME
Parameter Value : SPENSER
Parameter Name : SAL_CALC
Parameter Value : 27457.50
DSNC101I : The "CALL" command completed successfully.
db2 =>
- Db2 command line processor から cat コマンドを実行して、 ファイルの内容を表示します。 z/OS UNIX System Services clplog.txt 文の冒頭にある感嘆符(!)は、それが z/OS UNIX System Services コマンドであることを示します。
!cat clplog.txt#
clplog.txt ファイルの内容が表示されます。
DSNC101I : The "UPDATE COMMAND OPTIONS" command completed successfully.
Value of output parameters
--------------------------
Parameter Name : EMPNO_IN
Parameter Value : 000100
Parameter Name : EMPNAME
Parameter Value : SPENSER
Parameter Name : SAL_CALC
Parameter Value : 27457.50
DSNC101I : The "CALL" command completed successfully.
db2 =>
- このチュートリアル用に作成したすべてのオブジェクトをクリーンアップし、コマンド行プロセッサーを終了します。
- 出力結果をファイルに保存する Db2 command line processor オプションを元の設定のOFFに戻します。
UPDATE COMMAND OPTIONS USING z OFF#
- 作成した SQL オブジェクトを除去して、変更をコミットします。
DROP TABLE MY_EMP#
DROP PROCEDURE CALC_SAL#
COMMIT#
- Db2 command line processor の出力が含まれるファイルを削除します。
- Db2 command line processor セッションを終了します。
TERMINATE#
Db2 command line processor セッションが終了します。