機能
ファンクションルーチンを定義します。引数のデータ型、処理結果のデータ型およびファンクションルーチンの処理を行うプログラムを指定します。
記述形式
参照項番
データ型 → “2.2 データ型”
戻りデータ型 → “2.2 データ型”
日本語文字列 → “2.1.3 トークン”
権限
ファンクションルーチン定義が実行できるのは、スキーマ定義者およびCREATE権を付与された人です。
ファンクションルーチンを使用したSQL文を実行できるのは、ファンクションルーチンの定義者とEXECUTE権を付与された人です。
一般規則
クラスタシステムでのファンクションルーチンの処理を行うプログラムの格納場所は、各ノードに同一のディレクトリを作成し、同じプログラムを格納します。
使用例
Solaris/Linuxの場合
ファンクションルーチン“FUNC1”として、引数のデータ型、処理結果のデータ型、“FUNC1”を実行するCプログラムの関数“user_apl1”、“user_apl1”を格納しているライブラリ“/usr/local/lib/linmain1.so”を定義します。
CREATE FUNCTION S1.FUNC1 (IN INTEGER,IN INTEGER) RETURNS INTEGER LANGUAGE C NAME 'user_apl1' LIBRARY '/usr/local/lib/linmain1.so'
Windowsの場合
ファンクションルーチン“FUNC1”として、引数のデータ型、処理結果のデータ型、“FUNC1”を実行するCプログラムの関数“user_apl1”、“user_apl1”を格納しているライブラリ“D:\FORSYMFO\FUNCLIB\USERFUNC001.DLL”を定義します。
CREATE FUNCTION S1.FUNC1 (IN INTEGER,IN INTEGER) RETURNS INTEGER LANGUAGE C NAME 'user_apl1' LIBRARY 'D:\FORSYMFO\FUNCLIB\USERFUNC001.DLL'