SQLプロシージャを利用できるようにするには
提供:DB2逆引きWiki
【DB2逆引きリファレンス目次】 【DB2逆引きリファレンス目次#アプリケーション開発編】 【DB2逆引きリファレンス目次#ストアドプロシージャ】
目次 |
前提
- 以下のいずれかが必要: SYSADM権限
解説
ストアドプロシージャおよびユーザー定義関数を記述するために用いるSQLプロシージャは、C言語に変換された後、実行可能コードにコンパイルされます。 このため、SQLプロシージャを用いたストアドプロシージャおよびユーザー定義関数を作成するには、 Cコンパイラをインストールした上で以下のプロファイルレジストリ変数を設定する必要があります。
- DB2_SQLROUTINE_COMPILER_PATH
- Windows環境でのみ必要です。Visual C++を利用するためのセットアップスクリプトVCVARS32.BATへのフルパスを設定します。 VCVARS32.BATは、Visual C++をインストールしたディレクトリの下のVC98\BINディレクトリにあります(Visual C++ Ver.6.0の場合)。
- DB2_SQLROUTINE_COMPILE_COMMAND
-
Cコンパイラのコマンドラインを指定します。
- Windows環境の場合
-
cl -Od -W2 /TC -D_X86_=1 -MD -I%DB2PATH%\include SQLROUTINE_FILENAME.c /link -dll -def:SQLROUTINE_FILENAME.def /out:SQLROUTINE_FILENAME.dll %DB2PATH%\lib\db2api.lib
%DB2PATH%はDB2をインストールしたディレクトリのパスです。空白を含まないように注意してください。
- UNIX環境の場合
-
$CC -I$HOME/sqllib/include
SQLROUTINE_FILENAME.c -bE:SQLROUTINE_FILENAME.exp
-e SQLROUTINE_ENTRY -o SQLROUTINE_FILENAME
-L$HOME/sqllib/lib -ldb2
$CCは、コンパイラのコマンド名です。例えばLinuxではccです。
使用例
Windows環境での設定の例。 ここでVisual C++とDB2は、それぞれC:\Microsoft Visual C++とC:\Program Files\IBM\SQLLIBにインストールされていると仮定しています。
db2set DB2_SQLROUTINE_COMPILER_PATH="C:\Micros~1\vc98\bin\vcvars32.bat"↓ db2set DB2_SQLROUTINE_COMPILE_COMMAND="cl -Od -W2 /TC -D_X86_=1 -MD -IC:\Progra~1\IBM\SQLLIB\include SQLROUTINE_FILENAME.c /link -dll -def:SQLROUTINE_FILENAME.def /out:SQLROUTINE_FILENAME.dll C:\Progra~1\IBM\SQLLIB\lib\db2api.lib"↓
Linux環境での設定の例。
db2set DB2_SQLROUTINE_COMPILE_COMMAND=cc -I$HOME/sqllib/include \ SQLROUTINE_FILENAME.c -bE:SQLROUTINE_FILENAME.exp \ -e SQLROUTINE_ENTRY -o SQLROUTINE_FILENAME \ -L$HOME/sqllib/lib -ldb2"↓