チュートリアル: Db2 command line processorの使用

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 操作との整合性を保つため、大文字で表示されます。

プロシージャー

  1. Db2 command line processor を起動し、 Db2 command line processor のオプションを設定します。
    1. Db2 command line processor を起動するには、事前に設定したエイリアスを入力します。
      db2
      Db2 command line processor が開始され、次のプロンプトが表示されます
      db2 =>
    2. 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 ドライバーに関する情報が表示されます。

    3. 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 に記載されています。

    4. コミット操作を明示的に実行するため、自動コミットを無効にしたいとします。 これを行うには、以下のように c オプションを OFF に設定する必要があります。
      UPDATE COMMAND OPTIONS USING c OFF

      自動コミット・オプションが正常に無効になったことを示す、以下のメッセージが表示されます。

      DSNC101I : The "UPDATE COMMAND OPTIONS" command completed successfully.
                                                                             
      db2 =>
  2. データを照会および変更する SQL ステートメントを実行します。
    1. SQL CREATE ステートメントを実行して、サンプル従業員表のコピーを作成します。
      CREATE TABLE MY_EMP LIKE DSN8C10.EMP
    2. SQL INSERT ステートメントを実行して、サンプル従業員表からサンプル従業員表のコピーにデータを追加します。
      INSERT INTO MY_EMP SELECT * FROM DSN8C10.EMP
    3. 前に実行した SQL 操作をコミットします。
      COMMIT
    4. 出力を画面上で読みやすくするために、返される列データの最大幅を 12 に設定します。
      CHANGE MAXCOLUMNWIDTH TO 12
    5. 以下の 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 =>                                                                                       
  3. Db2 command line processor を終了し、異なるオプション設定で再起動します。
    1. Db2 command line processor を終了する。

      Db2 command line processor を終了する

      TERMINATE

      管理は z/OS UNIX System Services に戻ります。

    2. Db2 command line processor を開始する際に、終了文字をシャープ記号 (#) に設定することで、SQL PL プロシージャ内のステートメントをセミコロン (;) で終了できるようになります。
      db2 -td#                   
                                                          
      db2 =>
    3. 出力結果をファイルに保存するための Db2 command line processor オプションを変更します。 Db2 command line processor が出力する結果を clplog.txt という名前のファイルに保存し、画面に出力するように指示するには、次のコマンドを実行します。
      UPDATE COMMAND OPTIONS USING z ON clplog.txt#
    4. Db2 データベースサーバーに、事前に定義された接続エイリアスを使用して接続します。
      CONNECT to MYALIAS01#
  4. ストアード・プロシージャーを作成し、呼び出します。 出力をファイルに保存します。
    1. ストアード・プロシージャー 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#                                                                 
    2. 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 =>
    3. 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 =>
  5. このチュートリアル用に作成したすべてのオブジェクトをクリーンアップし、コマンド行プロセッサーを終了します。
    1. 出力結果をファイルに保存する Db2 command line processor オプションを元の設定のOFFに戻します。
      UPDATE COMMAND OPTIONS USING z OFF#
    2. 作成した SQL オブジェクトを除去して、変更をコミットします。
      DROP TABLE MY_EMP#
      DROP PROCEDURE CALC_SAL#
      COMMIT#
    3. Db2 command line processor の出力が含まれるファイルを削除します。
      !rm clplog.txt#
    4. Db2 command line processor セッションを終了します。
      TERMINATE#

      Db2 command line processor セッションが終了します。