DB2逆引きリファレンス目次】 【DB2逆引きリファレンス目次#アプリケーション開発編】 【DB2逆引きリファレンス目次#ストアドプロシージャ

前提

解説

SQLプロシージャを用いたストアドプロシージャを作成するには、Cコンパイラがインストールされている必要があります。 しかし、必ずしもCコンパイラを利用できる環境ばかりとは限りません(例えば実際の運用環境)。 このような場合、Cコンパイラがインストールされている環境でSQLプロシージャを作成し、コンパイル済みの実行モジュールをCコンパイラのない環境にコピーするとよいでしょう。 実行モジュールの移動には、CLPのGET ROUTINEおよびPUT ROUTINEコマンドを用います。 GET ROUTINEコマンドは、データベースに登録されているストアドプロシージャの実行モジュールを取り出し、ファイルにアーカイブするためのコマンドです。

GET ROUTINE INTO アーカイブファイル名 FROM [SPECIFIC] PROCEDURE ストアドプロシージャ名もしくは固有名

SPECIFIC
: 取り出すストアドプロシージャを固有名で指定する場合に指定します。

アーカイブファイル名
: 取り出した実行モジュールを格納するためのアーカイブファイル名へのパスを指定します。

ストアドプロシージャ名もしくは固有名
: 取り出す実行モジュールのストアドプロシージャ名もしくは固有名を指定します。 固有名で指定する場合は、SPECIFICオプションも指定する必要があります。

PUT ROUTINEコマンドは、アーカイブに格納された実行モジュールをデータベースに登録するためのコマンドです。

PUT ROUTINE FROM アーカイブファイル名 [OWNER 所有ユーザー名 ]

アーカイブファイル名
: 実行モジュールが格納されているアーカイブファイル名へのパスを指定します。

OWNER 所有ユーザー名
: ストアドプロシージャの所有者となるユーザーの名前を指定します。指定しなかった場合は、もともとの所有者の名前が使用されます。

手順

  1. ストアドプロシージャを定義済みのデータベースに接続します。 以下はsampleデータベースにストアドプロシージャが格納されていると仮定した場合の例です。
    db2 ==> CONNECT TO sample↓
  2. GET ROUTINEコマンドを実行し、実行モジュールのアーカイブを作成します。 以下は、db2inst1というスキーマで定義されているストアドプロシージャproc1の実行モジュールを、アーカイブファイルprocs.sarに取り出す場合の例です。
    db2 ==> GET ROUTINE INTO procs.sar FROM PROCEDURE db2inst1.proc1↓
  3. ストアドプロシージャの移行先のデータベースに接続します。 以下は、sample2データベースにストアドプロシージャを移行すると仮定した場合の例です。
    db2 ==> CONNECT TO sample2↓
  4. PUT ROUTINEコマンドを実行し、実行モジュールのアーカイブを登録します。
    db2 ==> GET ROUTINE FROM procs.sar↓

注意

参照