ストアドプロシージャ(SQL)を移動するには

提供:DB2逆引きWiki

移動: 案内, 検索

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↓
    


注意

参照

個人用ツール
名前空間
変種
操作
案内
ツールボックス