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"↓

参照

個人用ツール
名前空間

変種
操作
案内
ツール